我们的应用程序在JBoss 6 EAP和7 Community上保持不变。现在我们想要添加对WildFly 9的支持,我们发现我们需要更改应用程序WAR中打包的各种JBoss部署描述符(jboss-deployment-structure.xml,jboss-scanning.xml,jboss-web.xml)使应用程序在WildFly 9上运行。不幸的是,这些更改似乎打破了我们的应用程序与旧JBoss版本的向后兼容性。
有没有办法在单个WAR存档中拥有多个JBoss部署描述符版本,以便每个JBoss版本选择它可以支持的最高版本?
我们的目标是让一个应用程序WAR在JBoss 6.x EAP,JBoss 7.x社区以及WildFly 8.x和9.x上运行不变。
答案 0 :(得分:1)
不幸的是,目前无法使用单个jboss-deployment-structure.xml文件执行此操作。
我的团队采取了以下方法之一来解决这个问题:
创建一个安装在每个应用服务器中的自定义模块,并让jboss-deployment-structure文件仅引用此自定义模块。
为您要部署的每个应用服务器提供单独的maven配置文件。这不是理想的,因为它会为您的不同服务器生成不同的war文件。对于需要更改其他文件的项目(如beans.xml或web.xml),这是必需的。