我正在按照http://www.mkyong.com/jsf2/jsf-2-0-spring-integration-example/的指导原则实现Spring + JSF应用程序,但我使用的是最新的Spring版本(即3.x,它已经包含了JSR 330实现,根据文档,所以这不应该是一个问题)和我自己的课程,这与上述例子不同。
我遇到NullPointerException
,表示bean(充当JSF托管)bean没有收到Spring bean实例的注入。所有bean都在适当的位置使用JSR 330注释(@Named
,@Inject
),bean和变量的接口(在@Inject
注释下)遵循通常的命名模式... < / p>
那么 - 如何调试这种情况。例如。有没有办法看到进入Spring应用程序上下文的所有bean。例如。所以我们可以确定Spring上下文没有被恰当地初始化。也许还有其他方法可以看到app中发生了什么(调试注入)?
答案 0 :(得分:0)
Spring支持依赖注入的JSR 330注释,前提是你的类路径中有相关的jar。
您需要将以下jar添加到您的应用程序中。
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
通过启用org.springframework
的日志记录,您可能会获得良好的信息只需添加log4j jar并将此log4j.properties文件放入类路径的根目录中。
Log4j.properties:
log4j.rootCategory=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ISO8601} %-5p %c %M - %m\n
log4j.category.org.springframework=DEBUG
另见:
文档