Как предотвратить или поставить в очередь звонки на сервер JBoss, прежде чем он завершит инициализацию всего? - PullRequest
1 голос
/ 28 марта 2012

У меня есть EAR, который я развернул на JBoss. Этот EAR содержит два основных компонента, набор EJB и сервлет. Он также содержит несколько других библиотек.

В текущем состоянии кода необходимо инициализировать некоторые синглтоны, чтобы EJB действительно мог работать. Эта инициализация производится в сервлете, чтобы запустить все кэши данных и инициализировать их. Моя проблема в том, что из-за этой отдельной инициализации, которая может длиться до 30 секунд, есть момент, в течение которого EJB развернут и доступен, но вызов их приведет к ошибкам.

Итак, вопрос в следующем: есть ли способ заблокировать вызовы EJB на время этой инициализации другим компонентом? В идеале, он просто поставит их в очередь и выполнит после завершения инициализации, это также может отказать им.

Единственный способ, о котором я сейчас могу думать, - это иметь статическое логическое значение в инициализаторе, которое будет проверяться в вызовах EJB (на самом деле их перехватчик). Но это далеко не удобно. Поэтому мне интересно, есть ли другой способ сделать это, менее грязный.

...