Аннотация @EJB может использоваться в «управляемых клиентах» для доступа к EJB.
Эту аннотацию можно поместить в класс сервлета, объявив переменную-член.
public class MyServlet extends HttpServlet {
@EJB
private MyWorkerInterface theWorker;
}
Эта аннотация @EJB расширена до поисков JNDI, которые (я предполагаю) выполняются при инициализации сервлета. Эти поиски JNDI могут завершиться неудачей: поставщик EJB может изменить свои аннотации, указав конкретные имена JNDI, тогда моей ссылке @EJB потребуется указать имя JNDI не по умолчанию, иначе поиск не удастся.
Также я предполагаю, что, поскольку EJB может быть удаленным, существует вероятность временных, сетевых сбоев и ошибок отказов сервера.
Моя мысль: при использовании theWorker я должен проверить его действительность.
if ( theWorker == null ) {
// ... etc.
Мои вопросы:
1.) Нужны ли такие нулевые проверки?
2.) Если они равны и , то значения NULL могут быть вызваны временной ошибкой, такой как временный сбой удаленного сервера, возможно ли какое-либо восстановление? Сервлет теперь инициализирован. Мне действительно нужно перезапустить мой сервлет для восстановления? Конечно, нет?
3.) Предварительная мысль: для предпочтения использованию @EJB может потребоваться явный, ленивый код поиска JNDI. Комментарии?