我们的应用程序在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版本都选择它可以支持的最高版本?

我们的目标是拥有一个在JBoss 6.x EAP,JBoss 7.x社区以及WildFly 8.x和9.x上都能正常运行的应用程序WAR。

最佳答案

不幸的是,当前无法通过单个jboss-deployment-structure.xml文件来执行此操作。

我的团队已采用以下方法之一来解决此问题:


创建一个安装在每个应用程序服务器中的自定义模块,并使jboss-deployment-structure文件仅引用该自定义模块。
对于要部署在其上的每个应用服务器,都有一个单独的Maven配置文件。这不是理想的,因为它会为您的不同服务器生成不同的war文件。对于需要更改其他文件(例如bean.xml或web.xml)的项目,这是必需的。

关于java - 单个WAR中的多个JBoss/WildFly部署描述符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32705938/

10-15 17:13