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 (сессионный компонент без сохранения состояния) внедряется в вспомогательный компонент моего веб-приложения JSF. Однако бины работают без проблем, но я все же хотел бы знать, откуда исходит это предупреждение и что я могу сделать, чтобы его избежать.

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

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

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


person Simon Lehmann    schedule 29.01.2009    source источник


Ответы (6)


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

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

<category name="org.jboss.ejb3.interceptors">
    <priority value="ERROR" />
</category>
person Simon Lehmann    schedule 22.05.2009

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

person Richard Kettelerij    schedule 22.05.2009
comment
Точно! Я не знаю, почему я, как пользователь их продукта, должен знать о предупреждениях, генерируемых внутренними частями, которые я не могу контролировать и, следовательно, ничего не могу сделать, чтобы исправить предупреждение. - person Simon Lehmann; 22.05.2009

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

person Oscar    schedule 30.12.2009
comment
прокомментируйте эти строки: ‹aspect name=InterceptorsFactory factory=org.jboss.ejb3.interceptors.aop.InterceptorsFactory scope=PER_INSTANCE/› и ‹advice name=invoke aspect=InterceptorsFactory/› Работает для меня! - person Oscar; 12.03.2010

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

Я прокомментировал эти строки:

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

и это работает

person lajili abdel    schedule 11.02.2011

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

person Pedro Riera    schedule 19.10.2009
comment
Они по-прежнему появляются в JBoss 5.1.0 GA: 15:24:22,083 WARN [InterceptorsFactory] EJBTHREE-1246: не используйте InterceptorsFactory с ManagedObjectAdvisor, InterceptorRegistry следует использовать через контейнер bean-компонентов. - person mjn; 11.11.2009

Просто следуйте инструкциям

  1. Остановите JBoss, щелкните правой кнопкой мыши экземпляр сервера и выберите «Очистить».
  2. щелкните правой кнопкой мыши проект и выберите «Выполнить» -> «Выполнить конфигурации».
  3. выберите путь к классам -> добавить банки
  4. Добавить банки из JBoss ASHOME/client — jbossall-client.jar, JBoss ASHome/common/lib — все банки.
  5. Применить и запустить.
person Mani    schedule 15.03.2016