我正在使用 Spring 来处理我的依赖项注入(inject),并且我目前正在编写一个 jar,该 jar 使用我之前制作的自制 logging-1.0.jar
。我是在 Eclipse 中写这篇文章的,这可能很重要。
那个 logging-1.0.jar
中有一个名为 logging-base.xml
的关键配置文件,其中设置了各种环境属性,以便我的记录器正常工作.
我的新 jar 在 Ant 中编译/构建正常,但在运行时抛出异常:
Exception in thread "main"
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Failed to import bean definitions from URL location
[classpath:logging-base.xml] Offending resource: class path resource
[spring/client-config.xml]; nested exception is
org.springframework.beans.factory.parsing.BeanDefinitionParsingException:
Configuration problem: Unable to locate Spring NamespaceHandler for XML schema
namespace [http://camel.apache.org/schema/spring]
Offending resource: class path resource [logging-base.xml]
看来 Spring 找不到我的 logging-base.xml
文件,因为它不在“类路径中”。在我的项目中,我有一个 lib/
目录,其中存储了我所有的依赖 jar。当我将一个新的 jar 复制到此目录中时,只需右键单击它并转到构建路径 >> 添加到构建路径,Eclipse 就会将该 jar 的引用提供给运行时。
在我的 lib/
目录下的所有 jar 中,logger-1.0.jar 在包资源管理器中其名称旁边有一个明显的图标。它的图标中有一个小问号(“?”)。
所以我猜测,不知何故,我的日志jar配置不正确,因此,没有添加它的logging-base.xml
文件到类路径。因此,在运行时,Spring 找不到它。
但这就是我对 Eclipse 和 Spring 的了解逐渐停止的地方。
有什么想法吗?
最佳答案
我认为问题可能出在 spring 处理程序上,您可能已经定义了此 namespace http://camel.apache.org/schema/spring在 client-config.xml 中,Spring 通常为应用程序上下文中定义的每个 namespace 定义 namespace 处理程序。这些处理程序在名为 spring.handlers 的文件中定义,并包含在本例中的相应 jar 中 (camel-spring-X.jar)。
关于java - Spring导入看不到资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7600256/