java - 单个 WAR 中的多个 JBoss/WildFly 部署描述符

标签 java deployment jboss wildfly deployment-descriptor

我们的应用程序在 JBoss 6 EAP 和 7 Community 上运行不变。现在我们想要添加对 WildFly 9 的支持,我们发现我们需要更改打包在应用程序 WAR 中的各种 JBoss 部署描述符(jboss-deployment-struct.xml、jboss-scanning.xml、jboss-web.xml)使应用程序在 WildFly 9 上运行。不幸的是,这些更改似乎破坏了我们的应用程序与旧版 JBoss 版本的向后兼容性。

是否有办法在单个 WAR 存档中包含多个 JBoss 部署描述符版本,以便每个 JBoss 版本选择它可以支持的最高版本?

我们的目标是拥有一个可以在 JBoss 6.x EAP、JBoss 7.x Community 以及 WildFly 8.x 和 9.x 上不变运行的单一应用程序 WAR。

最佳答案

不幸的是,目前无法使用单个 jboss-deployment-struct.xml 文件来完成此操作。

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

  1. 创建一个安装在每个应用服务器中的自定义模块,并使 jboss-deployment-struct 文件仅引用此自定义模块。

  2. 为您希望部署的每个应用程序服务器都有一个单独的 Maven 配置文件。这并不理想,因为它会为不同的服务器生成不同的 war 文件。这对于其他文件(例如 beans.xml 或 web.xml)也需要更改的项目来说是必要的。

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

相关文章:

java - 嵌套类中的类可访问性

spring - 未找到部署期间的 context.xml

ios - 离线 iOS 企业应用程序部署和供应

asp.net - "Can' t 在 Visual Web Developer Publish 上找到有效的 AspnetMergePath”?

java - jboss 的 RepositoryClassLoader 相对于独立自定义类加载器的优势

java - 作为 IN 运算符参数的对象列表

java - 具有特定开始时间的 quartz 单作业多个触发器不起作用

java - 在Java中将字符串转换为数组?

java - 需要从 jboss 6.4 模块中排除 apache httpcomponent

java - 如何获取.ear文件在应用服务器中的路径?