【问题标题】:Spring Import Can't See ResourcesSpring导入看不到资源
【发布时间】: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!如果您将评论更改为答案,我会为您检查 - 就是这样!
  • 我很高兴问题得到解决,我将其作为答案。

标签: java xml eclipse spring


【解决方案1】:

我认为问题可能出在 spring 处理程序上,您可能已经在 client-config.xml 中定义了这个名称空间 http://camel.apache.org/schema/spring,Spring 通常为应用程序上下文中定义的每个名称空间定义名称空间处理程序。这些处理程序定义在一个名为 spring.handlers 的文件中,并且在本例中包含在相应的 jar 中(camel-spring-X.jar)。

【讨论】:

    【解决方案2】:

    您可能想添加xerces.jar 并在jre6\lib\ext 目录中,试试这个。因为它帮助我解决了这个问题!

    【讨论】:

    • Rakesh - 我很欣赏你的建议,但你能详细说明为什么这会起作用吗?!?!这似乎是一个奇怪的“黑客”!在我收到此错误之前,我收到了 SAXExceptions,因为某些 XML 本身是无效的,所以我知道它以正确的方式验证/解析模式。将 Xerces 显式添加到 JVM 的私有库中只是感觉... hacky。 (但感谢您抽出宝贵时间提出建议!)
    • @Mara,xerces 库用于解析 Web 应用程序中的 xml 内容。好吧,我并没有试图深入挖掘这个......你可以找到更多信息here
    猜你喜欢
    • 2021-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多