2009-01-29 13 views
19

actualmente estoy desarrollando una aplicación basada en EJB 3.0 en el JBoss AS 5.0.0.GA y recientemente la siguiente advertencia se presentó en el registro del servidor:JBoss: ¿Qué significa la advertencia EJBTHREE-1246 de InterceptorRegistry?

 
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, los desarrolladores de frijol no tienen que preocuparse, pero es una advertencia, entonces 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 (Download, Release-Notes), pero sigue apareciendo por desgracia la advertencia.

Respuesta

25

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

Siguiendo el consejo de los desarrolladores, ahora lo ignoro cambiando mi configuración de registro en conf/jboss-log4j.xml. Acabo de añadir:

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

Incluso el tutorial/documentación 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.

+3

¡Exactamente! No sé por qué, como el usuario de su producto debe saber acerca de las advertencias generadas por partes internas que no puedo controlar y, por lo tanto, no puedo hacer nada para arreglar la advertencia. –

0

Las advertencias ya no aparecen en JBoss 5.1.0, pero la adición de la categoría que registró Simon elimina el registro de las advertencias en 5.0.x

+7

Siguen apareciendo en JBoss 5.1.0 GA: 15: 24: 22,083 WARN [InterceptorsFactory] EJBTHREE-1246: No utilice InterceptorsFactory con ManagedObjectAdvisor, InterceptorRegistry debe usarse a través del contenedor de beans – mjn

3

que tenía el mismo problema , modifique ejb3-interceptors-aop.xml, y ahora funciona bien.

+0

¿cuál de las modificaciones de este archivo fue suficiente? – mjn

+2

comentario esta líneas: y ¡Funciona para mí! – Oscar

1

He intentado esta modificación en ejb3-interceptors-aop.xml

he comentar estas líneas:

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

y funciona

0

sólo tiene que seguir los pasos

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