【问题标题】:Deploying to multiple instances of Glassfish, breaking up my EAR部署到 Glassfish 的多个实例,破坏了我的 EAR
【发布时间】:2013-04-04 09:11:20
【问题描述】:

我有一个小的 EAR-JEE6 应用程序,它由 3 个模块(EAR + EJB + WEB)组成。 有 3 个文件:ear、jar 和 war - ear-file 包含 jar 和 war 文件。

我的问题:
我想在 2 台不同的机器(IP-1 和 IP-2)上设置 2 台 glassfish 服务器,我想在 IP-1 上部署 EJB(jar-file),在 IP-上部署 WEB(war-file) 2.

我的 Web 项目有一个 servlet,它依赖于我的 EJB 项目中的无状态 bean,已注入。我无法理解这一点。

web-project 如何在 EJB-project 中找到无状态 bean? 我需要某种“全球”的查找服务(我可以在其中输入所有 IP 地址)——只是在这里猜测。

这可能吗?

【问题讨论】:

    标签: glassfish glassfish-3 remote-access ejb-3.1 ear


    【解决方案1】:

    您可以使用 Java 命名和目录接口 (JNDI) 执行此操作。

    您必须以如下方式手动查找您的 bean:

    Context ic = new InitialContext();
    Object o = ic.lookup("java:comp/env/ejb/Foo");
    

    更多细节可以在这里找到:Accessing EJB Components in a Remote GlassFish Serverthis stackoverflow question

    【讨论】:

    • 谢谢。但是如果我将这些行放在 Servlet 中,如果它部署在另一个 IP 地址上,它将如何找到“java:comp/env/ejb/Foo”?
    • 尝试 { InitialContext context = new InitialContext(); CapitalBeanRemote bean = (CapitalBeanRemote) context.lookup("java:global/RemoteEJBModule/CapitalBean"); messageTextField.setText(bean.getCapital("日本"));上下文.close(); } 捕捉(异常 e){ e.printStackTrace(); Web 项目必须依赖于 EJB 项目,因为 CapitalBeanRemote 是 EJB 项目的一部分?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多