现在已经有一段时间了,还有几件事我不清楚。
让我们从基础开始:我需要做什么。 我正在构建一个Web应用程序来操作一些数据,做一些计算并给用户一个输出。还有一个独立版本,有一些简化。
所以我认为现在是使用EAR打包结构和EJB的最佳时机。我用netbeans创建了一个带有maven支持的基本j2ee ear项目:
他们都有自己的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容器,我是对的吗?
答案 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以及独立客户端中此接口的副本。
你可以在这里找到一些关于它的教程:
另见: