Введено EJB иногда Null - PullRequest
       4

Введено EJB иногда Null

0 голосов
/ 17 февраля 2010

Я использую EJB без сохранения состояния с помощью аннотации @EJB ... в большинстве случаев все работает как надо, но кажется, что время от времени то, что предполагается вводить, преобразуется в NULL, вызывая исключение нулевого указателя .

Что может вызвать эту неустойчивую проблему?

1 Ответ

1 голос
/ 16 июня 2010

JBoss 4.x не будет автоматически внедрять EJB в Servlets / JSP / POJO.Но он также не будет жаловаться на аннотации, он просто не будет работать во время выполнения, и объекты останутся нулевыми.Вы должны использовать поиск JNDI.

Из документов JBoss:

Поиск аннотаций EJB @EJB можно использовать в сервлетах и ​​JSP, но, к сожалению, мы еще не обновили tomcat дляподдержать это.Кроме того, Tomcat работает со старым форматом XML, поэтому вы также не можете использовать XML.Итак, пока вы должны искать EJB через его глобальное имя JNDI.Это не соответствует требованиям, но если вы достаточно абстрагируетесь, все будет в порядке.

Пример:

public void init() throws ServletException
   {
      super.init();
      try
      {
         InitialContext ctx = new InitialContext();

         // J2EE 1.5 has not yet defined exact XML <ejb-ref> syntax for EJB3
         CalculatorLocal calculator = (CalculatorLocal)ctx.lookup("tutorial/CalculatorBean/local");
         setCalculator(calculator);
      }
      catch (NamingException e)
      {
         throw new RuntimeException(e);
      }
}

Обязательно используйте имяВаш EAR как первый сегмент в имени, которое вы ищете (tutorial в приведенном выше примере).

Ссылки:

...