Jersey应用程序在启动时运行初始化代码以初始化应用程序

时间:2011-09-15 00:08:15

标签: initialization jersey

我有一个使用Jersey构建的应用程序。我需要通过运行特定于应用程序的登录/代码在Tomcat 7容器中启动webapp / war时进行一些初始化。

泽西岛最好的方法是什么?我之前在Servlet环境中使用了ContextListener和contextInitialized()。我需要确保在拨打电话之前已加载泽西岛资源。

1 个答案:

答案 0 :(得分:13)

不确定你的意思是“泽西资源之前加载”,但是如果你想真正插入Jersey init进程..泽西有几个“监控”插件点(没有广泛宣传或记录)和我'我将描述在AbstractResourceModel初始化之后被调用 - 所以在应用程序启动之后。

试试这个:

@Provider
public class Listener implements AbstractResourceModelListener {

    @Override
    public void onLoaded(AbstractResourceModelContext modelContext) {
        System.out.println("##### resource model initiated");
    }
}

它应该每个应用程序生命周期只发生一次,我不太确定重新加载,但如果你不使用该功能,你不需要打扰它(无论如何,你应该在那里做一些检查以避免多次调用如果可能导致一些问题)。