Tomcat после стартапа с весны - PullRequest
3 голосов
/ 20 января 2011

У меня есть функция, которую я хочу выполнить сразу после запуска tomcat и успешной загрузки всех его атрибутов. Я не хочу использовать ServletContextListener, так как для этого потребуется запустить функцию до запуска tomcat. Может кто-нибудь подсказать, как это сделать?

Ответы [ 3 ]

6 голосов
/ 20 января 2011

ServletContextListener.contextInitialized(..) - это метод, который вызывается после инициализации всех сервлетов и фильтров для данного приложения.

  • если есть несколько ServletContextListener с, некоторые из них вызываются раньше других (логически)
  • если есть несколько приложений (следовательно, несколько контекстов), некоторые из них запускаются раньше других.

Обновление Теперь я приму ваши настройки, хотя вы не поделились ими:

  • вы начинаете весну через слушателя (а не с сервлетом)
  • вы настраиваете спящий режим в течение весны

В этом случае у вас есть два варианта:

0 голосов
/ 21 января 2011

Я думаю, JMX Поддержка Tomcat может удовлетворить ваши требования, даже если ServletContextListener не развернуто в контейнере.

0 голосов
/ 21 января 2011

Вы можете создать загрузочный сервлет, а затем добавить его в конец файла web.xml:

<servlet>
        <servlet-name>StartupServlet</servlet-name>
        <servlet-class>com.your.package.MyStartupServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
</servlet>


public class MyStartupServlet extends HttpServlet {

    public void init(ServletConfig config) throws ServletException {
        try {
             //  Startup code here
        } catch (Exception e){
            // Log exception
        }
    }

    public java.lang.String getServletInfo() {
        return "StartupServlet";
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...