Pregunta

Tengo la siguiente configuración:

JBoss 4.2.3
 debajo de eso tengo:

 
--> Project A  (Wich is not SEAM 2.1.2GA based)
    EJBs:
       * beanA (JNDI = beanA/remote)
       * beanB (JNDI = beanB/remote)

--> Project B  (SEAM based)
    EJBs / Components:
       * ComponentX
       * ComponentY

En el componente X tengo el código actual:

@Scope(ScopeType.CONVERSATION)
@Name("ComponentX")
public class ComponentX implements java.io.Serializable { 
...
@EJB
beanAInterface beanA;
....
public foo(){
    beanA.bar();  // <--------- beanA is null, even with mapped name and etc, only works
                  //            if i direct lookup with Context().lookup("beanA/remote")
}

¿Alguna idea sobre cómo resolver esto?

Gracias de antemano.

}

¿Fue útil?

Solución

Su clase ComponentX no es un EJB, por lo que no puede usar la anotación @EJB para inyectarlos. Tienes pocas opciones. Convierta su ComponentX en EJB agregando @Stateless o @Statefull y una interfaz @Local o @Remote, de esta manera el AS notará que ComponentX es un EJB y sabrá qué hacer con la inyección deseada. La otra opción es permitir que ComponentX sea simplemente un componente y usar la búsqueda de InitialContext # para obtener la referencia a " beanA / remote " a mano.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top