构建时从WAR或JAR向OpenEJB excludeList添加JAR排除规则
给WAR或Fat JAR配置TomEE/OpenEJB排除Bean部署的方法
方案1:在WAR里配置(推荐)
不用修改全局的conf/exclusion.list,直接在WAR的WEB-INF目录下新建openejb-jar.xml文件,内容如下:
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar"> <assembly-descriptor> <exclude-list> <!-- 填写你的Fat JAR文件名,支持通配符比如`*-lib.jar` --> <jar>your-fat-library.jar</jar> </exclude-list> </assembly-descriptor> </openejb-jar>
要是不想单独创建文件,也可以把这段配置直接嵌入到web.xml中,记得添加openejb的命名空间:
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:openejb="http://www.openejb.org/xml/ns/openejb-jar" version="4.0"> <!-- 你的其他web.xml配置内容 --> <openejb-jar> <assembly-descriptor> <exclude-list> <jar>your-fat-library.jar</jar> </exclude-list> </assembly-descriptor> </openejb-jar> </web-app>
方案2:直接在Fat JAR内部标记
如果想让这个Fat JAR走到哪都自动被排除部署,就在它的META-INF目录下创建openejb-jar.xml文件,内容更简洁:
<openejb-jar xmlns="http://www.openejb.org/xml/ns/openejb-jar"> <assembly-descriptor> <exclude-list> <!-- 用`.`代表当前这个JAR本身 --> <jar>.</jar> </exclude-list> </assembly-descriptor> </openejb-jar>
这样TomEE扫描到这个JAR时,会自动跳过里面所有Bean的部署,完全不用额外配置WAR或服务器。
额外说明
- 两种方案都能把排除规则和WAR/JAR绑定,避免在每个部署的服务器上重复修改全局配置。
<jar>标签支持精确文件名和通配符,比如有多个同类型库JAR时,用*匹配即可。- 优先推荐单独创建
openejb-jar.xml的方式,比嵌入web.xml更清晰,也符合TomEE的配置习惯。
内容的提问来源于stack exchange,提问作者Cameron Sours
相关产品推荐
相关产品推荐

