Была очень похожая проблема.Дело в том, что - webfear - извините, не смог устоять ;-) не инициализирует все при запуске.
Чтобы вызвать контролируемый запрос, я добавил ScheduledEJB для запуска приложения.Этот компонент сам инициировал http-запрос к определенному URL, который сам вызвал:
- любые фильтры для инициализации в цепочке
- любые необходимые контексты инициализируются
И это само по себе обеспечило очень быстрое тестирование моего приложения (EAR или WAR) после развертывания.Это хорошо работает с небольшим количеством запросов в минуту
Если вы работаете с высокой нагрузкой, то есть тоннами запросов в секунду, вам нужно выбрать другой подход.В этом случае я добавил механизм опроса в @Startup приложения, который опрашивал каждую секунду или 250 мс (зависит от загрузки приложения).Этот запуск на сервере гарантировал, что мой компонент @Startup был самым первым, который вызвал возможные проблемы инициализации в приложении.Если это произошло, я инициализировал фильтр, который всегда сообщал запрашивающему 500 (или более подходящую ошибку).
Конечно, остановите ваш бин, как только вы получите 500, иначе ваши администраторы могут захотеть убитьвы.(случается со мной, так как я произвел тонны или проблемы с мониторингом ;-)) И, конечно же, при нормальной работе, после того, как ваше приложение запустилось правильно, вы также должны отключить опрос