【发布时间】:2011-09-29 16:12:39
【问题描述】:
我正在使用 Spring 来处理我的依赖注入,我目前正在编写一个 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 复制到这个目录中时,我只需右键单击它并转到 Build Path >> Add to Build Path,Eclipse 就会将该 jar 的引用提供给运行时。
在我的lib/ 目录下的所有 jar 中,logger-1.0.jar 在包资源管理器中的名称旁边有一个独特的图标。它的图标中有一个小小的问号(“?”)。
所以我猜测不知何故,我的日志记录 jar 配置不正确,因此没有将其 logging-base.xml 文件添加到类路径中。因此,在运行时,Spring 找不到它。
但这就是我对 Eclipse 和 Spring 的了解停止的地方。
有什么想法吗?
【问题讨论】:
-
您是否在部署中使用骆驼弹簧罐?
-
不——从没想过这会是个问题。我应该尝试什么?我的存储库中有骆驼核、-jms、-spring、-spring-ws。
-
手头的问题是看起来你的client-config.xml中有这个命名空间camel.apache.org/schema/spring,Spring通常为它们定义命名空间处理程序,它们在名为spring.handlers的文件中并且在这种情况下包含在罐子中(camel-spring-X.jar)。对于此特定部署,您使用骆驼吗?
-
感谢 Prasanna!如果您将评论更改为答案,我会为您检查 - 就是这样!
-
我很高兴问题得到解决,我将其作为答案。