EJBからSEAMコンポーネント(異なるプロジェクトと同じJBoss)

StackOverflow https://stackoverflow.com/questions/1602931

  •  05-07-2019
  •  | 
  •  

質問

次の設定があります:

JBoss 4.2.3
 その下に私が持っている:

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

コンポーネントXには、現在のコードがあります:

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

これを解決するためのアイデアはありますか?

事前に感謝します。

}

役に立ちましたか?

解決

ComponentXクラスはEJBではないため、@ EJBアノテーションを使用してそれらを注入することはできません。いくつかのオプションがあります。 ComponentXをEJBに変換し、@ Statelessまたは@Statefullとインターフェイス@Localまたは@Remoteを追加します。これにより、ASはComponentXがEJBであることに気付き、目的のインジェクションの処理方法を認識します。もう1つのオプションは、ComponentXを単なるコンポーネントとして、InitialContext#lookupを使用して、「beanA / remote」への参照を取得することです。手で。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top