2013-03-18 3 views
1

В Сервлета 3.0 реализация приложения ServletContainerInitializer вызывается, если приложение запускается сначала BEGINS, и в ближайшее время вызываются любые ServletContextListener s (если они есть), но все же, поскольку контекст начинается с инициализации BEGINNING. Аналогичным образом, если у вас есть Servlet с набором нагрузки при запуске, их методы init вызываются при запуске Servlet s, но все же ДОПОЛНИТЬ, когда контекст завершает инициализацию.Возможно ли получать уведомление после инициализации ServletContext?

Во всех этих случаях контекст не завершил инициализацию. Это прекрасно, и я понимаю и соглашаюсь с причинами этого. Однако то, что я ищу, - это способ получить уведомление сразу после того, как контекст завершил инициализацию и открыт для бизнеса. В качестве примера, должно быть возможно (не сказать, что я хочу это сделать) для этого слушателя, чтобы выполнить веб-запрос к приложению, в котором он находится. Этого было бы невозможно для любого из вышеупомянутых слушателей/инициализаторов, поскольку они вызываются до того, как приложение прослушивает запросы.

Возможно ли это? Не обязательно строго быть предоставленным сервлетом. Может быть Spring Framework или другая библиотека, которая выполняет эту задачу.

ответ

0

Вы можете использовать JBoss Seam, у них есть событие жизненного цикла сервлета @Initialized.

public void observeServletContextInitialized(@Observes @Initialized ServletContext ctx) 
{ 
    System.out.println(ctx.getServletContextName() + " initialized"); 
} 
Смежные вопросы