在managedBean中注入远程EJB

时间:2014-01-15 14:04:16

标签: jsf ejb-3.0

自从x时间开始,我就陷入了如何在JSF应用程序的托管bean中注入远程EJB的问题。 我已经创建了一个简单的Java应用程序,并且我已经使用查找来注入远程EJB ...并且它可以工作。 但是当我来到网络应用程序时,我真的不知道该怎么做!!!

这是我的EJB代码:

@Stateless
public class Hello implements HelloRemote {

@Override
public String sayHello(String name) {

    return "Hello, "+name;
}
}

远程接口是

@Remote
public interface HelloRemote {

public String sayHello(String name);
}

在我的网络应用程序中,我创建了我的托管bean:

@ManagedBean
 public class MyBean {
   @EJB
   HelloRemote helloRemote;

}

但它不起作用:(

1 个答案:

答案 0 :(得分:0)

如果要在本地公开EJB,则必须在Interface上使用@Local

如果要在本地和远程公开,则必须创建2个接口,一个使用@Local,另一个使用@Remote

如果您的JSF ManagedBean(MyBean)在本地运行,即在与EJB相同的App服务器上运行,您可以使用@EJB直接注入它。

如果您的JSF ManagedBean在不同的服务器上运行,则必须使用 JNDI Registry 来查找和访问EJB。