EJBからSEAMコンポーネント(異なるプロジェクトと同じJBoss)
質問
次の設定があります:
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」への参照を取得することです。手で。
所属していません StackOverflow