3

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

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

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

4

2 回答 2

2

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

于 2012-08-06T02:23:55.503 回答
0

是的。您需要使用所有必需的(远程)业务接口/异常和旅行对象(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/ 。这不是“拆分”架构的示例,但我认为它可能是信息性的。或简单地忽略它:)

于 2015-01-27T19:34:36.640 回答