jboss ejb-3.0 warnings session-bean

JBoss: ¿Qué significa la advertencia EJBTHREE-1246 del InterceptorRegistry?



ejb-3.0 warnings (6)

Actualmente estoy desarrollando una aplicación basada en EJB 3.0 en JBoss AS 5.0.0.GA y recientemente apareció la siguiente advertencia en el registro del servidor:

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 ... ...

Las advertencias se generan tan pronto como un EJB (un bean de sesión sin estado) se inyecta en un bean de respaldo de mi aplicación web JSF. Los frijoles sí funcionan sin problemas, pero aún me gustaría saber de dónde viene esa advertencia y qué puedo hacer para evitarlo.

Ya he buscado un poco, pero no he encontrado una buena respuesta (algunos dicen que los desarrolladores de beans no tienen que preocuparse, pero es una advertencia, así que me gustaría tener una mejor solución):

Entonces, ¿alguien tiene una explicación sobre la causa de la advertencia (en términos de desarrollador de bean, no de desarrollador de servidor de aplicaciones) y qué hacer para evitarlo?

Actualización: Acabo de actualizar JBoss a 5.0.1.GA ( Descargar , Release-Notes ) pero desafortunadamente la advertencia aún aparece.


Incluso el tutorial / documentación de JBoss EJB3 dice que puede ignorar estas advertencias de forma segura. Bueno, si todos pueden ignorarlos, ¡no los registren! Es frustrante ver que este problema no se soluciona.


Las advertencias ya no aparecen en JBoss 5.1.0, pero agregar la categoría como publicado Simon elimina el registro de las advertencias en 5.0.x.


Por lo que entiendo todas las fuentes disponibles en esta advertencia, no es nada de lo que un usuario de JBoss 5 pueda hacer nada y es esencialmente solo un recordatorio para los desarrolladores de JBoss de que usan sus propias clases incorrectas.

Siguiendo el consejo de los desarrolladores, ahora lo ignoro al cambiar mi configuración de registro en conf / jboss-log4j.xml. Acabo de agregar:

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


Probé esta modificación en ejb3-interceptors-aop.xml

He comentado estas líneas:

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

y funciona


Solo sigue los pasos

  1. Detenga JBoss y haga clic derecho en la instancia del servidor y seleccione limpiar
  2. haga clic derecho en el proyecto y seleccione ejecutar -> ejecutar configuraciones
  3. seleccione classpath -> agregar frascos
  4. Agregue tarros de JBoss ASHOME / client - jbossall-client.jar , JBoss ASHome / common / lib - all jars.
  5. Aplicar y ejecutar.

Tuve el mismo problema, modifiqué ejb3-interceptors-aop.xml, y ahora funciona bien.