2012-02-17 114 views
10

的WebSphere 7进样EJB我试图注入与@EJB批注的EJB:当我注入一个EJB到正常工作同侧耳另一个EJB从另一个应用程序

  • 当我注入一个EJB到来自同一 服务器的另一耳另一个EJB我得到一个异常:

EJB 方法的调用“的sayHello”期间抛出意外(未声明的)异常。异常数据:javax.ejb.EJBException:注入 失败;嵌套的异常是: com.ibm.ejs.container.EJBNotFoundException:EJB与接口 com.mycompany.myapp.ejb.test2在应用myapp1

我使用的WebSphere 7和EJB 3.0不存在。当我自己做一个jndi查找时,它工作正常。如何让容器知道从何处注入远程Bean?

myapp1.ear包含以下内容:myapp1.jar(其中EJB是)

myapp1 EJB:

package com.mycompany.myapp1.ejb.test1; 

@Remote 
public interface HelloEjb1 { 
    public String sayHello(); 
} 

EJB默认地将Impl:

package com.mycompany.myapp.ejb.test1; 

@Stateless 
public class HelloEjbImpl1 implements HelloEjb1 { 

    @EJB 
HelloEjb2 helloEjb2; 

    @Override 
    public String sayHello() { 
     return HelloEjb2.sayHello(); 
    } 
} 

myapp2.ear包含以下:myapp2.jar(其中EJB是)

myapp2 EJB:

package com.mycompany.myapp2.ejb.test2; 

@Remote 
public interface HelloEjb2 { 
    public String sayHello(); 
} 

EJB默认地将Impl:

package com.mycompany.myapp2.ejb.test2; 

@Stateless 
public class HelloEjbImpl2 implements HelloEjb2 { 

    @Override 
    public String sayHello() { 
     return "Hello"; 
    } 
} 

回答

5

指定部署应用程序时(12),或在您的客户端META-INF/ibm-ejb-jar-bnd.xml结合(myapp1)EJB模块。这将是这个样子:

<ejb-jar-bnd 
    xmlns="http://websphere.ibm.com/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ejb-jar-bnd_1_0.xsd" 
    version "1.0"> 
    <session name="HelloEjbImpl1"> 
    <ejb-ref name="com.mycompany.myapp.ejb.test1/helloEjb2" 
     binding-name="myapp2/myapp2.jar/HelloEjbImpl2#com.mycompany.myapp1.ejb.test1.HelloEjb1" 
    </session> 
</ejb-jar-bnd> 

ejb-ref name="..."可以简化如果使用@EJB(name="myrefname")。如果您的myapp2.jar包含一个类似的<interface class="..." binding-name="..."/>元素的绑定文件,绑定名称可以被简化。

+1

感谢,'ibm-ejb-jar-bnd.xml'是关键 – 2012-02-20 06:51:36

+0

您能解释更多关于第一种方法(部署应用程序时绑定)吗?谢谢。 – MyTitle 2013-05-18 15:23:37

+0

我已更新以添加一些InfoCenter链接。 InfoCenter中有很多信息,但如果您想要详细的答案,可能会更容易发起一个新问题。 – 2013-05-18 19:24:33

相关问题