ServletContextListener在部署时不执行

时间:2015-09-02 15:50:33

标签: java jersey websphere-liberty servletcontextlistener

我正在尝试在部署war文件时初始化流对象。

我编写了一个实现ServletContextListener的Initializer类,并在我的web.xml中添加了一个listener-class标记。问题是当我向我的应用程序发出第一个请求而不是在部署应用程序时发生ContextInitialized事件。

有没有更好的方法来初始化我的应用程序?

编辑:

public class Initializer implements ServletContextListener{

@Override
public void contextDestroyed(ServletContextEvent arg0) {
    System.out.println("Context Destroyed");

}

@Override
public void contextInitialized(ServletContextEvent arg0) {
    System.out.println("Context Initialized");
}

}

来自web.xml:

<listener>
    <listener-class>thepackage.Initializer</listener-class>
</listener>

编辑2: 找到解决方案并发布在下面。

1 个答案:

答案 0 :(得分:2)

问题是特定于Websphere Liberty。

将以下内容添加到Websphere Server的server.xml(〜/ wlp / usr / servers / {server-name} /server.xml)中:

<webContainer deferServletLoad="false"/>

了解更多信息:

http://www-01.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_servlet_load.html?cp=SSEQTP_8.5.5%2F1-3-11-0-3-2-20-0