如何从JSR 330 Spring应用程序中删除NullPointerException

时间:2012-10-21 15:43:20

标签: spring jsf tomcat jsr330

我正在按照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中发生了什么(调试注入)?

1 个答案:

答案 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

另见:

文档