ServletContextListener не выполняется при развертывании

Я пытаюсь инициализировать потоковый объект при развертывании моего файла войны.

Я написал класс Initializer, который реализует ServletContextListener, и добавил тег класса слушателя в свой файл web.xml. Проблема в том, что событие 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: решение найдено и опубликовано ниже.


person Alex    schedule 02.09.2015    source источник
comment
Можете ли вы поделиться кодом, как вы инициализируете ServletContextListener?   -  person Janny    schedule 02.09.2015
comment
Отредактировано в вопросе   -  person Alex    schedule 02.09.2015


Ответы (1)


Проблема специфична для Websphere Liberty.

Добавьте следующее в файл server.xml (~/wlp/usr/servers/{server-name}/server.xml) вашего сервера Websphere:

<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

person Alex    schedule 02.09.2015