Несколько дескрипторов развертывания JBoss/WildFly в одной WAR
Наше приложение работает без изменений на JBoss 6 EAP и 7 Community. Теперь мы хотим добавить поддержку WildFly 9 и обнаружили, что нам нужно изменить различные дескрипторы развертывания JBoss (jboss-deploy-structure.xml, jboss-scan.xml, jboss-web.xml), которые упакованы в WAR приложения. чтобы приложение работало на WildFly 9. К сожалению, эти изменения, похоже, нарушают обратную совместимость нашего приложения со старыми выпусками JBoss.
Есть ли способ иметь несколько версий дескриптора развертывания JBoss в одном архиве WAR, чтобы каждая версия JBoss выбирала самую высокую версию, которую он может поддерживать?
Наша цель состоит в том, чтобы иметь единую WAR приложения, которая работает без изменений на JBoss 6.x EAP, JBoss 7.x Community, а также на WildFly 8.x и 9.x.
1 ответ
К сожалению, в настоящее время нет способа сделать это с помощью одного файла jboss-deploy-structure.xml.
Мои команды выбрали один из следующих подходов к решению этой проблемы:
Создайте пользовательский модуль, который будет установлен на каждом сервере приложений, и пусть файл jboss-deploy-Structure ссылается только на этот пользовательский модуль.
иметь отдельный профиль maven для каждого сервера приложений, на котором вы хотите развернуть. Это не идеально, потому что он создает разные военные файлы для ваших разных серверов. Это необходимо для проектов, в которых необходимо изменить и другие файлы, такие как beans.xml или web.xml.