При разработке приложения Java EE я часто сталкивался с «проблемой» делать вещи, когда приложение запускается, останавливается и т. Д. Теперь для Weblogic, например, существует механизм для этого (слушатель жизненного цикла приложения) , Но если вы хотите сохранить свое приложение свободным от вещей, которые есть в приложении. для конкретного сервера, вы должны найти другое решение. Некоторые рекомендуют использовать сервлет, который загружается при запуске, и «злоупотреблять» init()
/ destroy()
.
Другие говорят, что используйте ServletContextListener
. Для меня последнее звучит лучше всего (согласно документу java для ServletContextListener
. К сожалению, сегодня я попробовал JBoss 7, где кажется, что веб-сервисы jax-ws инициализируются раньше, чем любые другие Servlet
, таким образом, прежде чем ServletContextListener
получит уведомление.
Короче говоря - я просто сталкиваюсь здесь с некоторыми специфическими для сервера приложений проблемами - или есть какой-то "более подходящий", стандартизированный способ Java EE для регистрации вещей, работы перед тем, как инициализировать какой-либо веб-сервис, сервлет или что-либо еще?