2010-05-06 2 views
4

Мое веб-приложение будет развернуто как пакет WAR в экземпляре Jetty. Перед выполнением запросов необходимо выполнить много кеширования. Как я могу вызвать метод кэширования перед чем-либо еще? является статическим void main() в стандарте веб-приложения?Как инициализировать веб-приложение?

+1

Если вы хотите, чтобы люди ответили на ваши вопросы, пожалуйста, примите несколько ответов. –

ответ

4

Стандартным (старым) способом является кодирование сервлета, который позаботится об инициализации в своем методе init(). Вы вынуждаете его необходимо инициализировать при запуске приложения, добавив load-on-startup положительное значение в вашей web.xml

<servlet> 
     <servlet-name>myinit</servlet-name> 
     <servlet-class>com.example.MyInitServlet</servlet-class> 
     <load-on-startup>2</load-on-startup> 
    </servlet> 

Сегодня это больше обычного, чтобы иметь контейнер для кофейных зерен, как Spring, который заботится о такого рода вещей (инстанцировании объектов услуг, предварительная загрузка кэшируемых совместно используемых данных и т. д.).

Примечание: этот рецепт предназначен для webapps в целом, а не для Jetty.

+0

Мне нравится это решение, потому что я могу использовать его с любым сервером веб-приложений. Для этого мне понадобится фиктивный сервлет. Есть ли способ выполнить такую ​​инициализацию без реализации сервлета? Существует ли статический void main() для веб-приложений? – Gatis

+1

Кажется, добавление ServletContextListener - это все, что я хочу. – Gatis

 Смежные вопросы

  • Нет связанных вопросов^_^