【问题标题】:Netbeans Java EE project with layers on different machineNetbeans Java EE 项目在不同机器上具有层
【发布时间】:2012-08-01 09:22:24
【问题描述】:

目标是创建一个简单的 Java EE 6 应用程序,其中 EJB 部署在一台机器上,Web 部件部署在另一台机器上。我正在使用 Glassfish 和 Netbeans 7.2,但我对这两个部分之间的依赖关系感到困惑。

我创建了一个企业应用程序项目,并且 Netbeans 7.2 开始将该项目拆分为一个 war 部分和一个 jar 部分。由于两者应该部署到两台不同的机器(两台 Glassfish 服务器)中,我在创建第一个 EJB 时使用了 Remote 选项,但 Netbeans 要求我提供一个 Remote Project。我应该创建一个包含远程接口的库吗?而在那种情况下,战争部分应该使用它吗? (看来war jsf 托管bean 已经可以导入接口了,所以我很困惑)。

我读过的所有 Netbeans 教程都没有在客户端是 Web 应用程序时提及远程接口,而只有在客户端是企业客户端应用程序时才提及。使用 web 组件和 ejb 组件开发 Java EE 多层应用程序的正确方法是什么?

【问题讨论】:

    标签: jakarta-ee netbeans ejb


    【解决方案1】:

    是的,您必须为远程接口再创建一个项目,否则您无法调用 EJB

    【讨论】:

      【解决方案2】:

      是的。您需要创建包含所有必需的(远程)业务接口/异常和旅行对象 (TO) 的“EJB 客户端”jar。

      如果你使用 maven,你可以在这里找到一个很好的文档,如何创建这样的文档: https://maven.apache.org/plugins/maven-ejb-plugin/examples/generating-ejb-client.html

      那么在您的 war/WEB-INF/lib 上只包含您的应用程序的客户端 jar 和所有其他必需的 jar,但不包含包含您的 EJB 服务实现的 jar。这些部署在另一台机器上的 EAR/lib 文件夹中。 client-jar 必须只存在于您的 Web 机器类路径中。

      顺便说一句:如果你使用 Maven。看看 GitHub 上的示例 Maven 结构: https://github.com/StefanHeimberg/stackoverflow-1134894/。这不是“拆分”架构的示例,但我认为它可能是信息性的。或者简单地忽略它:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-14
        • 1970-01-01
        相关资源
        最近更新 更多