我用MyEclipse写一个程序,用了struts+spring+ibatis的框架,与一般的spring用法不同的是,我把spring与struts的配置文件都放在了webRoot/WEB-INF下,在写完xml文件后,想在一个java应用程序中用main方法测试一下sql语句的执行效果,却报了下面的错误:
log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [applicationContext.xml]; nested exception is java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:349)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:113)
at org.springframework.context.support.AbstractXmlApplicationContext.loadBeanDefinitions(AbstractXmlApplicationContext.java:80)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:423)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:353)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.hs.test.HouseTest.run(HouseTest.java:18)
at com.hs.test.HouseTest.main(HouseTest.java:27)
Caused by: java.io.FileNotFoundException: class path resource [applicationContext.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:142)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:336)
... 14 more我换了很多的路径的写法还是不行,放这儿让大家给我看一下,该如何改正这个错误,谢谢..

解决方案 »

  1.   

    在WEB.xml中是不是没有配好啊...欢迎加入新建的超级群: Java爱好者.群号: 26036666 . 群上限500人.共享空间1G .管理员招募中..要求.能帮大家解决一些常见问题..
      

  2.   

    文件有很多种放法,没必要一定放在WEBINF下面,主要要搞清楚sping加载文件的机制,可以直接追踪contextConfigLocation类,看他是在哪里找的
      

  3.   

    第一是放到src,下,类路径的
    第二是放到webRoot下,
    第三是放到WEB-INF,这是web.xml指定的。
    关键你用什么工具,和什么类加载这个文件,多注意spring 的文档。
    根据上面的错误可能是你的log4j。jar没有加。你看看啦
      

  4.   

    contextConfigLocation类?这个类我还没注意过,看一下