我有以下设置:

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,并且知道如何处理所需的注入。另一个选项是将ComponentX简单地作为一个组件,并使用InitialContext#lookup来获取对“beanA / remote”的引用。用手。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top