有没有一种很好的方法来诊断spring bean / service creation问题?

时间:2011-08-06 15:43:28

标签: spring javabeans startup monitor creation

我的项目使用spring和spring-dm进行bean / service配置。当我尝试导入一个也使用spring for 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中,我使用url定义了一些控制台bean,如/test/abc.do

在eclipse中作为OSGi框架启动时没有错误发生。 但是当我尝试访问URL(/test/abc.do)时,会遇到“未知的OSGi URL :”。

这个问题让我很困惑,我不知道从哪里开始。我的bundle依赖于spring bundle,并有appContext.xml和dispatcher.xml。只是一个正常的春季使用场景。

由于弹簧看起来像黑盒子,我只能尝试一些其他可能的原因,但是直到现在还没有解决。有人知道如何监控弹簧启动过程或有用的日志吗?

感谢。

使用spring-dm时,

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

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

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

1 个答案:

答案 0 :(得分:3)

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

E.g。

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

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