外部ejb-jar.xml

时间:2014-01-10 00:42:58

标签: java-ee ejb-3.0 jboss5.x

我必须为遗留EJB添加自定义功能。我假装通过ejb-jar.xml假装使用Interceptor来完成这样的任务,因为我无法编辑源代码以使用@Interceptors注释重新编译它。

是否可以在包含感兴趣的EJB的JAR之外定义ejb-jar.xml文件?目前,该jar包含自己的ejb-jar.xml,因此我需要覆盖它或“扩展”它的定义。

亲切的问候。

2 个答案:

答案 0 :(得分:0)

  

是否可以在包含感兴趣的EJB的JAR之外定义ejb-jar.xml文件?

不,如果存在ejb-jar.xml文件,则必须将其存储在META-INF / ejb-jar.xml中。

请注意,部署描述符文件不会严格考虑source code。您完全可以提取ejb.jar.xml,修改它(在您的情况下配置Interceptor规则)并再次将所有部分打包在一起。

这种做法得到JEE规范的支持,完全合法。 它是部署描述符文件优于代码注释的优势之一。

答案 1 :(得分:0)

这是组件ejb库的问题。如果库不是为了在其他模块/项目中重用而没有合理的方法 - 只提取和修改ejb-jar.xml。

如果ejb库应该在其他项目中重用,则不应该定义ejb-jar.xml。比任何项目都可以使用META-INF / MANIFEST.MF Class-Path条目在自己的ejb模块中包含此库。

另一种方法是创建另一个仅包含拦截器的ejb库,并将两个ejb库捆绑到一个耳朵中。