我有以下设置:
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/