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), но, к сожалению, предупреждение все еще появляется.
Ответы
Ответ 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 - все банки.
- Применить и запустить.