4

我的项目使用 spring 和 spring-dm 进行 bean/service 配置。当我尝试导入一个也使用 spring 进行 DI 的旧项目时,将不会创建 bean。

一个清楚的例子,

我首先在 spring-appContext.xml 中定义了一个 url-alias

<bean name="xxxx" class="XRegistry" init-method="init">
    <property name="webRoot" value="/WebContent"></property>
    <property name="alias" value="/test"></property>
    <property name="cAliasPattern" value="/test/*.do" />
    <property name="conConfigFile" value="ddd.xml"/>
</bean>

在 ddd.xml 中,我用 /test/abc.do 之类的 url 定义了一些控制器 bean

在 Eclipse 中作为 OSGi 框架启动时不会发生错误。但是当我尝试访问 URL(/test/abc.do) 时,遇到了“ Unknown OSGi URL :”。

真正让我感到困惑的问题是我不清楚从哪里开始。我的 bundle 依赖于 spring bundle 并且有 appContext.xml 和 dispatcher.xml。只是一个正常的弹簧使用场景。

由于 spring 对我来说看起来像黑匣子,我只能尝试一些我能想到的其他可能的原因,但直到现在还没有修复它。有人知道如何监控春季启动过程或有用的日志吗?

谢谢。

编辑使用 spring-dm 时,您需要创建一个包含 log4j.properties 的新片段以启用日志记录。这可以帮助您跟踪弹簧启动错误。

正如我在第一个答案中解释的那样,找到了根本原因,有两个选择,

  1. 对于工作区和目标平台中都存在的那些包,请增加当前工作区中包的版本。发生错误时,您还应该查看依赖包
  2. 删除目标平台中的高版本包。
4

1 回答 1

4

您是否尝试过设置 spring 框架调试的日志级别?

例如

log4j.rootLogger=WARN, stdout
[...]
log4j.logger.org.springframework=DEBUG

在尝试诊断 bean 创建问题时,这始终是我的第一个起点。

于 2011-08-10T07:26:53.893 回答