即使文件在路径中,也无法从 URL 位置 [classpath:spring/spring-persistence-layer.xml] 导入 bean 定义

Posted

技术标签:

【中文标题】即使文件在路径中,也无法从 URL 位置 [classpath:spring/spring-persistence-layer.xml] 导入 bean 定义【英文标题】:Failed to import bean definitions from URL location [classpath:spring/spring-persistence-layer.xml] even when the file in the path 【发布时间】:2016-05-03 04:48:24 【问题描述】:

严重:上下文初始化失败

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置问题:无法从 URL 位置导入 bean 定义 [classpath:spring/spring-persistence-layer.xml] 违规资源:类路径资源[spring/spring-beans.xml];嵌套异常是 org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [spring/spring-persistence-layer.xml];嵌套异常是 java.io.FileNotFoundException: 类路径资源 [spring/spring-persistence-layer.xml] 无法打开,因为它不存在 在 org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68) 在 org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:85) 在 org.springframework.beans.factory.parsing.ReaderContext.error(ReaderContext.java:76) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:246) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:197) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:182) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 在 org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124) 在 org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:92) 在 org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 在 org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) 在 org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) 在 org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) 在 org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) 在 org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4812) 在 org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) 在 org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1408) 在 org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1398) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745) 引起:org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from class path resource [spring/spring-persistence-layer.xml];嵌套异常是 java.io.FileNotFoundException: 类路径资源 [spring/spring-persistence-layer.xml] 无法打开,因为它不存在 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:341) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 在 org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 在 org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:240) ... 28 更多 引起:java.io.FileNotFoundException:类路径资源[spring/spring-persistence-layer.xml]无法打开,因为它不存在 在 org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157) 在 org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328) ... 32 更多

【问题讨论】:

【参考方案1】:

从异常堆栈中可以清楚地看出 Spring 无法找到 XML 文件 spring-persistence-layer.xml。确保文件在那里。

试试这个: classpath*:spring/spring-persistence-layer.xml 而不是 classpath:spring/spring-persistence-layer.xml

【讨论】:

谢谢!这已经解决了,但现在我遇到了一个新错误。 org.springframework.beans.factory.BeanCreationException:在类路径资源 [META-INF/spring/spring-process-layer.xml] 中定义名称为“calculatorController”的 bean 创建错误:设置属性值时出错;嵌套异常是 org.springframework.beans.PropertyBatchUpdateException;嵌套的PropertyAccessExceptions(1)是:PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'calculatorDao' throw exception;嵌套异常是 java.sql.SQLSyntaxErrorException: ORA-00911: invalid character 如果它解决了问题并且您很高兴,那么请接受答案并帮助我们解决问题。您现在面临的错误是因为calculatorDAO 在创建 Bean 时抛出错误。

以上是关于即使文件在路径中,也无法从 URL 位置 [classpath:spring/spring-persistence-layer.xml] 导入 bean 定义的主要内容,如果未能解决你的问题,请参考以下文章

即使我获得了 API 密钥,也无法使用谷歌地图

测试路径:路径中的非法字符

如何通过使用位置 url 从 Node mongo 中删除 s3 对象?

libsqlplus.so:无法打开共享对象文件:即使 PATH 包含路径,也没有这样的文件或目录

为啥即使在搜索路径中列出了 GLEW 动态库,Xcode 也无法找到它?

无法从角度路由器获取路径或 url