Frage

Ich habe folgendes Setup:

JBoss 4.2.3
 unter, die ich habe:

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

Auf Komponente X i haben das aktuelle Stück Code:

@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")
}

Jede ideias, wie dies zu lösen?

Vielen Dank im Voraus.

}

War es hilfreich?

Lösung

Ihre ComponentX Klasse ist keine EJB, so dass Sie nicht die @EJB Anmerkung sie injizieren können. Sie haben ein paar Optionen. Konvertieren Sie Ihre ComponentX zu EJB Hinzufügen @Stateless oder @Statefull und eine Schnittstelle @Local oder @Remote, auf diese Weise die AS werden feststellen, ComponentX ein EJB und wird wissen, was mit der gewünschten Injektion zu tun. Die andere Option ist die ComponentX einfach als eine Komponente lassen und Initial # Lookup zum Erhalten des Referenz verwenden, um „Beana / remote“ von Hand.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top