我们的应用程序在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上运行 unchanged .
1 回答
不幸的是,目前没有办法使用单个jboss-deployment-structure.xml文件 .
我的团队采取了以下方法之一来解决这个问题:
创建一个安装在每个应用服务器中的自定义模块,并使jboss-deployment-structure文件仅引用此自定义模块 .
为您要部署的每个应用服务器都有一个单独的maven配置文件 . 这并不理想,因为它会为您的不同服务器生成不同的war文件 . 对于其他文件也需要更改的项目(如beans.xml或web.xml),这是必需的 .