У меня есть EAR, который я развернул на JBoss. Этот EAR содержит два основных компонента, набор EJB и сервлет. Он также содержит несколько других библиотек.
В текущем состоянии кода необходимо инициализировать некоторые синглтоны, чтобы EJB действительно мог работать. Эта инициализация производится в сервлете, чтобы запустить все кэши данных и инициализировать их. Моя проблема в том, что из-за этой отдельной инициализации, которая может длиться до 30 секунд, есть момент, в течение которого EJB развернут и доступен, но вызов их приведет к ошибкам.
Итак, вопрос в следующем: есть ли способ заблокировать вызовы EJB на время этой инициализации другим компонентом? В идеале, он просто поставит их в очередь и выполнит после завершения инициализации, это также может отказать им.
Единственный способ, о котором я сейчас могу думать, - это иметь статическое логическое значение в инициализаторе, которое будет проверяться в вызовах EJB (на самом деле их перехватчик). Но это далеко не удобно. Поэтому мне интересно, есть ли другой способ сделать это, менее грязный.