有一个java web project项目,我的applicationcontext.xml文件放在了WEB-INF/下面。
现在我建了一个测试类Test.java,我想用它测试一下spring的配置是否正确,那么我如何在Test测试类中的main方法中写代码呢?
string path="";
ApplicationContext ac = new classPathXMLApplicationContext(path);
这个path该怎么写呢?
我写:
/WEB-INF/applicationcontext.xml不对
WEB-INF/applicationcontext.xml也不对
/WebRoot/WEB-INF/applicationcontext.xml还不对
咋写呢?
applicationContext.xml放在src目录下是没有问题的,也测试成功了。
但就是放在WEB-INF下后,在Test测试类中我该如何写这个路径呢?
--------------------
经过一番百度和楼下朋友的解答,问题基本解决
http://hi.baidu.com/0428_hai/blog/item/e784addd42fe4e2e5882dd19.html
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:beans.xml</param-value>
</context-param>
按照你的名称修改,然后在JUnit测试的时后新建对象这样写就可以了
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");
希望可以帮到你追问
关键是我在运行Test测试类时,根本就没有部署我的Web工程,有没有启动tomcat,这时候web.xml没加载啊,配置web.xml有用吗?
追答这样啊,可以的,我的J2EE都跑通了,如果不行你可以把applicationcontext.xml放到你的SRC根目录下面,系统会自动查找加载的
追问applicationContext.xml放到src里是没有问题的,我也测试成功了。
关键是现在它在WEB-INF下,我不知道如何写这个路径,怎么测试都不成功
试下用这个类加载看看
String path="WEB-INF/applicationContext.xml";
ApplicationContext context = new FileSystemXmlApplicationContext(path);
依旧不可以的。你可以测试测试。
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from file [F:\Java_Workspaces\javaWebPro\WEB-INF\applicationContext.xml]; nested exception is java.io.FileNotFoundException: WEB-INF\applicationContext.xml (系统找不到指定的路径。)
String path="WebRoot/WEB-INF/applicationContext.xml";
试一下,多点测试
要在web.xml加上下面代码:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>