Инициализация EJB и ServletContextListener

У меня есть война с классом, расширяющим ServletContextListener, и я переопределяю метод contextInitialized.

У меня также есть EJB без сохранения состояния, который использует данные из моего ContextListener при инициализации. Проблема в том, что я думаю, что иногда контейнер выбирает сначала инициализировать мой EJB, а затем ContextListener, и это, конечно, приводит к некоторым исключениям NullPointers. Есть ли способ указать контейнеру сначала инициализировать мой ContextListener, а затем мои EJB?


person J Paul    schedule 27.06.2017    source источник
comment
какой контейнер вы используете.   -  person Ramesh PVK    schedule 29.06.2017
comment
@RameshPVK Weblogic 12c   -  person J Paul    schedule 29.06.2017


Ответы (1)


Являются ли EJB и веб-приложение отдельными приложениями? Если да, вы можете управлять порядком развертывания, как описано в документе здесь

Если они являются частью одного и того же корпоративного приложения, это документация weblogic предполагает, что это должно быть так же просто, как изменить порядок ejbs и вашего веб-приложения в application.xml

person ramp    schedule 29.06.2017
comment
Есть ли способ указать этот порядок внутри WAR вместо EAR? - person J Paul; 29.06.2017
comment
Не уверен, что вы спрашиваете, потому что WAR содержит только одно веб-приложение. Итак, как вы можете указать порядок там? Вам нужно выбрать войну и модуль ejb и задать одному более высокий «порядок развертывания», чтобы гарантировать, что он будет развернут раньше другого. - person ramp; 30.06.2017