Подтвердить что ты не робот

JBoss: Что означает предупреждение EJBTHREE-1246 от InterceptorRegistry?

В настоящее время я разрабатываю приложение на базе EJB 3.0 на JBoss AS 5.0.0.GA, и совсем недавно в журнале сервера появилось следующее предупреждение:

09:50:19,735 WARN  [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container
09:50:19,735 WARN  [InterceptorsFactory] EJBTHREE-1246: Do not use InterceptorsFactory with a ManagedObjectAdvisor, InterceptorRegistry should be used via the bean container
09:50:19,735 WARN  [InterceptorRegistry] applicable interceptors is non-existent for ...
...

Предупреждения генерируются, как только EJB (сеанс без состояния bean) вводится в фонотеку bean моего веб-приложения JSF. beans работают без проблем, но я все еще хочу знать, откуда это предупреждение, и что я могу сделать, чтобы избежать этого.

Я уже немного искал, но не нашел хорошего ответа (некоторые говорят, что разработчикам bean не нужно беспокоиться, но это предупреждение, поэтому я хотел бы иметь лучшее решение):

У кого-нибудь есть объяснение, что вызывает предупреждение (с точки зрения разработчика bean, а не разработчика сервера приложений) и что делать, чтобы избежать этого?

Обновление: Я только что обновил JBoss до версии 5.0.1.GA(Download, Release-Notes), но, к сожалению, предупреждение все еще появляется.

4b9b3361

Ответ 1

Насколько я понимаю все доступные источники в этом предупреждении, пользователь JBoss 5 ничего не может сделать и, по сути, просто напоминание для разработчиков JBoss о том, что они неправильно используют свои собственные классы.

Следуя советам разработчиков, я теперь игнорирую это, изменив конфигурацию журнала в conf/jboss-log4j.xml. Я только что добавил:

<category name="org.jboss.ejb3.interceptors">
    <priority value="ERROR" />
</category>

Ответ 2

Даже в учебнике/документации JBoss EJB3 говорится, что вы можете смело игнорировать эти предупреждения. Ну, если все могут игнорировать, не регистрируйте их! Это разочаровывает, что проблема не устраняется.

Ответ 3

У меня была та же проблема, измените ejb3-interceptors-aop.xml и теперь работает нормально.

Ответ 4

Я пробовал эту модификацию в ejb3-interceptors-aop.xml

Я прокомментировал следующие строки:

<aspect name="InterceptorsFactory" factory="org.jboss.ejb3.interceptors.aop.InterceptorsFactory" scope="PER_INSTANCE"/>  
<advice name="invoke" aspect="InterceptorsFactory"/> 

и он работает

Ответ 5

Предупреждения больше не отображаются в JBoss 5.1.0, но добавление категории по мере публикации Саймона исключает регистрацию предупреждений в 5.0.x

Ответ 6

Просто выполните шаги

  • Остановите JBoss и щелкните правой кнопкой мыши на экземпляре сервера и выберите clean
  • щелкните правой кнопкой мыши проект и выберите run → run configurations
  • выберите classpath → add jars
  • Добавить Jars из JBoss ASHOME/client - jbossall-client.jar, JBoss ASHome/common/lib - все банки.
  • Применить и запустить.