2009-10-21 43 views
3

我有以下设置: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") 
} 

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

在此先感谢。

}

回答

2

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

+0

工作就像一个魅力,谢谢! – 2009-10-27 02:25:00