我有以下设置:

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

On component X i have the current piece of 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")
}

关于如何解决这个问题的任何想法?

提前致谢。

}

最佳答案

您的 ComponentX 类不是 EJB,因此您不能使用 @EJB 批注来注入(inject)它们。你有几个选择。将您的 ComponentX 转换为 EJB,添加@Stateless 或@Statefull 以及一个接口(interface)@Local 或@Remote,这样AS 会注意到ComponentX 是一个EJB 并且知道如何处理所需的注入(inject)。另一种选择是让 ComponentX 作为一个简单的组件,并使用 InitialContext#lookup 手动获取对“beanA/remote”的引用。

关于jboss - EJB 到 SEAM 组件(不同的项目和相同的 JBoss),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1602931/

10-13 23:00