Кажется, что у нескольких людей такая же проблема (см. Это и это):
Если вы запустили сервер Glassfish (v 4) с MDB (Message Driven Bean) и есть сообщения, которые будут потребляться, MDB начнет потреблять сообщения, пока контейнер все еще инициализируется. Если для обработки сообщений требуется любая другая служба из контейнера, она выдает исключение:
Caused by: javax.ejb.EJBException: Attempt to invoke when container is in Initializing
Кто-нибудь смог решить эту проблему?
В идеале MDB должен начинать принимать сообщения только после полной инициализации контейнера.
Есть ли способ позволить MDB проверить инициализацию контейнера и только начать принимать сообщения, когда контейнер запущен и работает?
Изменить: Возможно, следующая аннотация помогает: @DependsOn ("Dependency")
Вы можете настроить последовательность загрузки приложения (порядок запуска), поставить большее значение для своего приложения и, возможно, поставить приложение задержки.