Ing*_*her 8 java java-ee java-ee-6 ejb-3.1
我有一个JavaEE6应用程序,由Web东西和EJB组成,并且部署为仅使用WAR(使用EJB3.1).构建基于Maven.我刚刚看了一下新的可能命令在Java EE 6的初始化模块在这里,我还需要我的应用程序.此外,我想有一个选项来定义XML中的一些EJB属性.
由于该示例是作为EAR项目部署的,因此订单在application.xml中定义.但是在WAR部署的项目中,没有application.xml.现在我想知道我可以在哪里定义这样的信息?或者是否可以在WAR-deployed-app中以某种方式使用application.xml?
编辑:
哎呀我没有正确读取模块顺序示例,在第一时间我认为它是关于我的应用程序中的EJB加载的顺序.当然我的WAR-app中只有一个模块,所以排序没有意义.
好吧,但就我而言,一个大问题仍然存在(也改变了问题标题以反映变化):ejb-jar.xml怎么样?我可以用XML以某种方式定义关于我的EJB的东西(因为它对某些设置有用,以避免重新编译)?
简而言之,基于WAR的部署是不可能的.
Java EE 6的模块初始化功能用于按特定顺序初始化应用程序的不同模块.拥有基于WAR的EJB应用程序的那一刻,您不再拥有EJB和Web应用程序的单独模块.只有一个模块 - 基于WAR的部署中的Web应用程序模块.
因此,如果必须实现与Java EE 6中提供的模块初始化顺序相同的功能,则必须执行以下任一操作:
ejb-jar.xml在WAR文件中的位置
EJB 3.1规范(在"打包"一章中)解决了部署在WAR中时ejb-jar.xml文件的位置问题:
在.war文件中,部署描述符以名称WEB-INF/ejb-jar.xml存储.
PS:我还没有尝试过这种部署方式.因人而异.
关于.wars和ejb-jar.xml处理中的EJB的附注.正如已经指出的那样,位置是WEB-INF/ejb-jar.xml,但是请注意,即使WEB-INF/lib /中有ejbs jar ,它也是唯一检查的位置 - 通过标准规则任何META-INF/ejb- jar.xml文件被忽略了.
专家组在那个问题上相当分散,所以如果您有偏好,那么将反馈发送到EJB 3.1专家组列表以供EJB.next考虑还为时不晚.
我的投票仍然允许个别罐子拥有META-INF/ejb-jar.xml文件,就像这些罐子现在可以有persistence.xmls,beans.xmls,web片段等一样.对我来说更大的问题是它有点不一致使用嵌入式EJB容器API,它支持EAR样式的类路径,允许多个jar /模块,每个jar /模块可能包含一个META-INF/ejb-jar.xml文件.结果是,如果您使用嵌入式API来测试组成单个.war文件的多jar ejb应用程序,那么您将面临将所有ejb-jar.xml数据合并到单个ejb中的任务. -appar用于webapp.对用户来说是一种痛苦.
| 归档时间: |
|
| 查看次数: |
13030 次 |
| 最近记录: |