Подтвердить что ты не робот

Есть ли способ выполнения кода во время запуска Apache Tomcat 6.x для выполнения процедур инициализации и т.д.?

Я хочу инициализировать глобальный экземпляр класса, прежде чем мой сервер Tomcat завершит запуск и начнет предлагать мои сервлеты. Если эта служба каким-то образом завершит инициализацию, я хотел бы, чтобы вся последовательность запуска также завершилась неудачей (или как можно ближе к ней, было бы бессмысленно работать в противном случае). Каким образом я могу это сделать?

4b9b3361

Ответ 1

Каждое веб-приложение имеет связанный с ним ServletContext. Объект ServletContext создается при запуске приложения и уничтожается при закрытии приложения. ServletContext имеет глобальную область видимости и похож на глобальную переменную в приложении.

http://www.javabeat.net/tips/178-servletcontextlistener-example.html

полное объяснение здесь

http://onjava.com/pub/a/onjava/2001/04/12/listeners.html

Ответ 2

Одна вещь, которую вы можете сделать портативно, - это реализовать сервлет, который инициализирует все, что вам нужно, в его методе init() (и, возможно, вызывается System.exit(), если он не работает, я не знаю, имеете ли вы разрешение на это в Кот). Затем вы загрузите его с помощью <load-on-startup> в web.xml, чтобы указать порядок инициализации.