0

我正在按照http://www.mkyong.com/jsf2/jsf-2-0-spring-integration-example/的指导方针实施 Spring+JSF 应用程序,但我使用的是最新的 Spring 版本(即 3.x,它根据文档,已经包含 JSR 330 实现,所以这应该不是问题)和我自己的类,这就是与上述示例的区别。

我坚持NullPointerException认为 bean(充当 JSF 管理的)bean 没有收到 Spring bean 实例的注入。@Named所有 bean 在适当的位置 ( , )使用 JSR 330 注释,@Inject并且 bean 的接口和变量(在@Inject注释下)遵循通常的命名模式......

那么 - 如何调试这种情况。例如,有没有办法查看 Spring 应用程序上下文中的所有 bean。例如,我们可以确定 Spring 上下文未正确初始化。也许还有其他方法可以查看应用程序中发生的事情(调试注入)?

4

1 回答 1

0

如果您的类路径中有相关的 jar,Spring 支持依赖注入的 JSR 330 注释。

您需要将以下 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

也可以看看:

文档

于 2012-10-21T17:41:39.740 回答