2

我试图在我的 Weld/Seam3 应用程序中启动一个 POJO,但运气不佳。我尝试了以下方法,但都没有奏效:

@Singleton
public class StartupJobs {
    @Inject
    private Logger log;

    public void onStartup(@Observes @Initialized ServletContextEvent event) {
        log.info("Starting startup jobs");
    }

    public void onStartupTwo(@Observes @Initialized WebApplication webApplication) {
        log.info("Starting startup jobs");
    }
}

-

// Guessing this way is no good as I can't use the javax.ejb.Startup annotation here
@ApplicationScoped
public class StartupJobs {
    @Inject
    private Logger log;

    @PostConstruct
    public void onStartup() {
        log.info("Starting startup jobs");
    }
}

但这些方法都不起作用。我的日志消息从未被提出。由于此应用程序在 Tomcat6 上运行,并且我必须将“org.jboss.weld.environment.servlet.Listener”侦听器添加到我的 web.xml,我想知道该类是否有一些我可以观察到的东西。不过我并没有特别注意到什么。

知道我还能尝试什么吗?

4

1 回答 1

3

发现我的问题是配置。由于在 Tomcat 6 上,我没有看到我需要一些额外的配置:http: //docs.jboss.org/seam/3/servlet/latest/reference/en-US/html/servlet-installation.html#installation .pre-servlet-3

在我写这篇文章时,关于该页面上的文档的快速说明,“Catch Exception Filter”的类应该是“org.jboss.seam.servlet.exception.CatchExceptionFilter”。该文档缺少“异常”。它似乎已经在 Seam Servlet 代码中得到修复,所以我想这个错误将在下次文档发布时得到修复。

于 2011-09-08T12:20:34.203 回答