Java 弹簧罐';无法加载xml配置文件
这个错误让我大吃一惊。所有的junit测试都很好,但是当我的应用程序作为另一个应用程序的插件加载时,我有一个错误。xml是jar文件的100%根目录,但由于某些原因,加载我的插件的主应用程序找不到该文件。为什么? 在应用程序的启动方法中,我调用Java 弹簧罐';无法加载xml配置文件,java,xml,spring,spring-mvc,Java,Xml,Spring,Spring Mvc,这个错误让我大吃一惊。所有的junit测试都很好,但是当我的应用程序作为另一个应用程序的插件加载时,我有一个错误。xml是jar文件的100%根目录,但由于某些原因,加载我的插件的主应用程序找不到该文件。为什么? 在应用程序的启动方法中,我调用 new ClassPathXmlApplicationContext(“beans.xml”)抛出 org.springframework.beans.factory.BeanDefinitionStoreException:IOException解析来
new ClassPathXmlApplicationContext(“beans.xml”)代码>抛出
org.springframework.beans.factory.BeanDefinitionStoreException:IOException解析来自类路径资源[beans.XML]的XML文档;嵌套异常为java.io.FileNotFoundException:无法打开类路径资源[beans.xml],因为它不存在
或
新文件系统XMLApplicationContext(getClass().getClassLoader().getResource(“beans.xml”).getPath())代码>抛出
org.springframework.beans.factory.BeanDefinitionStoreException:IOException从URL解析XML文档[file:/C:/path/to/my.jar!/beans.XML];嵌套异常是java.io.FileNotFoundException:C:\path\to\my.jar\beans.xml(系统找不到指定的路径)
UPD:问题是应用程序使用自定义类加载器,它不加载根目录、META-INF等中的资源文件。但只有类您得到的FileNotFoundException确实指出beans.xml文件不在您认为它所在的jar中。我想看看那个罐子里面。例如,您可以打开jar。我发现,当您遇到类似于您报告的错误时,这提供了有用的洞察力。如果您得到的是FileNotFoundException
,这是因为该文件不在您要查找它的位置。beans.xml
文件必须位于src/main/resources
您所说的“jar文件的根”是什么意思,您能检查它位于什么路径吗?@Jama我的意思是beans.xml必须位于jar文件中。