关于EAR项目结构和maven的说明

时间:2014-02-02 11:23:01

标签: jsf maven ejb java-ee-6 ear

现在已经有一段时间了,还有几件事我不清楚。

让我们从基础开始:我需要做什么。 我正在构建一个Web应用程序来操作一些数据,做一些计算并给用户一个输出。还有一个独立版本,有一些简化。

所以我认为现在是使用EAR打包结构和EJB的最佳时机。我用netbeans创建了一个带有maven支持的基本j2ee ear项目:

project structure

他们都有自己的pom.xml。 据我所知,第一个只是一个包装器,第二个是“真正的”项目,它不包含源代码,但封装了另外两个。 在web项目中,我把所有的web东西加上jsf支持bean。在ejb中,我计划将我的数据模型与所有必需的注释放在一起,并且还要理解JPA和JAXB。还应该有一些额外的类:外观类或会话bean,它允许我使用数据库进行基本数据操作,以及一些包含与我的数据严格相关的业务逻辑的类。

问题:将所有这些内容放入EJB项目是否正确?为什么不是Web模块所依赖的简单项目?

前进:网络项目。首先,netbeans不会将EJB项目依赖项放入其pom中。所以我从这里看不到我的豆子。这是正确的还是我必须手动将SRA-ejb作为依赖项添加到pom中?

其次,使用一些netbeans宏,比如从实体生成会话bean的那些宏,或者来自实体的CRUD jsf页面,看起来他试图在Web项目中生成并放置会话bean。我认为它们在ejb中更合适。你觉得怎么样?

最后一个问题:在我独立的应用程序中,我计划仅使用ejb模块。但我想我必须携带一个EJB容器,我是对的吗?

1 个答案:

答案 0 :(得分:1)

  

现在已经有一段时间了,还有几件事情没有   我很清楚。

我知道这种感觉肯定:D

  

他们都有自己的pom.xml。据我所知,第一个   一个只是一个包装器,第二个是“真正的”项目   不包含源代码,但封装了其他两个。

正确,它不包含任何源代码,但可以包含用于声明的XML文件和包含Web和EJB项目的共享库的公共lib文件夹。

  

在web项目中,我把所有的web东西加上jsf支持bean。   在ejb中,我计划将我的数据模型全部放入   需要注释,并理解JPA和JAXB。那里   还应该是一些额外的类:外观类或会话   bean,允许我使用数据库进行基本数据操作,以及   一些包含我的业务逻辑的类严格与我的相关   数据

     

问题:将所有这些内容放入EJB项目是否正确?   为什么不是Web模块所依赖的简单项目?

我不知道你对“简单项目”的意思,如果你只是一个带有类的普通JAR文件:EJB模块几乎相同,加上一个调用注释扫描的部署描述符。

  

前进:网络项目。首先,netbeans没有放   EJB项目依赖到它的pom。所以我看不到我的豆子   这里。这是正确的还是我必须手动将SRA-ejb添加到   pom作为依赖?

是的,在您的情况下,您需要这种依赖。您的Web项目取决于您的“服务”。

  

其次,使用一些netbeans宏,就像生成的那样   它看起来来自实体的会话bean,或来自实体的CRUD jsf页面   就像他试图在网上生成和放置会话bean一样   项目。我认为它们在ejb中更合适。你觉得怎么样?

我认为将它们放在EJB项目中更有意义,因为它们来自javax.ejb.*包并属于EJB层。你可以将它们放在我们的项目中,但是你真的不需要EAR,你可以像以前一样使用普通的web项目。

  

最后一个问题:我计划使用的独立应用程序   只是ejb模块。但我想我必须随身携带一个EJB   容器,我是对的吗?

不,您不需要EJB容器。您可以通过JNDI查找EJB,但是您需要一个带有远程接口的EJB以及独立客户端中此接口的副本。

你可以在这里找到一些关于它的教程:

另见: