TomEE on eclipse,如何从JSF Managed bean调用远程EJB?

时间:2014-02-28 13:51:43

标签: jsf-2 ejb jndi cdi tomee

我希望在一个TomEE服务器实例中使用JSF 2.0页面调用在不同TomEE服务器下运行的远程EJB(两者显然都在不同的端口上运行)。

这就是我在日食中所做的......

AppEJB - 是一个包含所有ejb代码的EJB项目 AppEJBInterfaces - 该项目包含所有远程接口,其思路是将这个jar添加到包含JSF前端的Web应用程序项目的类路径中。
AppWeb - 是包含JSF前端的动态Web应用程序项目。
AppEAR - 包含AppEJB。

以下是AppEJB中的ejb

@Stateless(name="UserManager")
@LocalBean
public class UserManagerImpl implements UserManager {
    public void createUser(User user) {
    }
}   

以下是AppEJBInterfaces中的远程接口

@Remote
public interface UserManager {
public void createUser(User user);
}

这就是我在JSF托管bean中所做的事情

@ManagedBean
@SessionScoped
public class UserLoginManager implements Serializable{  
@EJB(mappedName="UserManager")
UserManager userManager;
}

我在eclipse中创建了一个服务器,并将其指向TomEE 1.6 plus安装。我已将WebApp添加到服务器。当我右键单击服务器时,我没有看到添加AppEAR项目的选项,所以我遇到的问题是

如何将EJB项目或AppEAR添加/部署到服务器(eclipse中的TomEE)? 如何让JSF托管bean查找远程EJB? 如果我们假设我将ejbs转换为本地bean如何指定jndi names / config?

1 个答案:

答案 0 :(得分:1)

实际上,TomEE实现了JavaEE 6 Full Profile的大部分内容(它未经过认证,但在TomEE +中可用,例如JAXWS,JAXRS,JMS,Connector ......)。 @Remote EJB处于webprofile ditribution。

要查找,您可以使用RemoteInitialContextFactory或TomEE远程EJB注入功能(不可移植)。

请参阅http://tomee.apache.org/clients.htmlhttp://tomee.apache.org/ejb-refs.html(页面末尾)

编辑:你可以使用tomee将ear或ejbmodule部署到tomee(参见tomee.xml)。只需将二进制内容放在你将在tomee home中创建的apps文件夹中