Netbeans Java EE项目与不同机器上的图层

时间:2012-08-01 09:22:25

标签: java-ee netbeans ejb

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

是。您需要创建e" EJB客户端" jar包含所有必需(远程)业务接口/异常和Travel Objects(TO)。

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

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

顺便说一句:如果你使用maven。看一下GitHub上的示例maven结构: https://github.com/StefanHeimberg/stackoverflow-1134894/。这不是一个例子,分裂" architecure,但我认为它可能是信息。或者简单地忽略它:)