在Weld / Seam3应用程序上启动POJO

时间:2011-09-08 11:45:36

标签: java seam cdi jboss-weld seam3

我正在尝试在我的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中,我想知道是否有类似于我可以观察到的类。我没有特别注意到任何事情。

有什么线索我可以试试吗?

1 个答案:

答案 0 :(得分: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代码中得到修复,所以我想这个bug将在下次发布文档时修复。