External ejb-jar.xml



我必须向旧版 EJB 添加定制功能。我假装通过 ejb-jar.xml 将拦截器用于此类任务,因为我无法编辑源代码以使用 @Interceptors 注释重新编译它。

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

亲切问候。

是否可以在包含

感兴趣的 EJB 的 JAR 之外定义 ejb-jar.xml 文件?

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

请记住,部署描述符文件不被视为严格source code 。您可以完美地提取 ejb.jar.xml,修改它(在您的情况下配置拦截器规则)并将所有部分再次打包在一起。

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

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

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

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

最新更新