【问题标题】:TomEE on eclipse, How to call a remote EJB from a JSF Managed bean?Eclipse 上的 TomEE,如何从 JSF 托管 bean 调用远程 EJB?
【发布时间】:2014-02-28 13:51:43
【问题描述】:

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

这就是我在eclipse中所做的...

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? 如果我们假设我将 ejb 转换为本地 bean 如何指定 jndi 名称/配置?

【问题讨论】:

    标签: jsf-2 ejb jndi cdi apache-tomee


    【解决方案1】:

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

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

    http://tomee.apache.org/clients.htmlhttp://tomee.apache.org/ejb-refs.html(页尾)

    edit:您可以使用(参见 tomee.xml)将 ear 或 ejbmodule 部署到 tomee。只需将二进制文件放入您将在 tomee home 中创建的应用程序文件夹中

    【讨论】:

    猜你喜欢
    • 2012-01-27
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-19
    • 2014-03-19
    • 2013-10-02
    相关资源
    最近更新 更多