2015-09-21 2 views
0

Наше приложение работает без изменений в JBoss 6 EAP и 7 Community. Теперь мы хотим добавить поддержку WildFly 9, и мы выяснили, что нам нужно изменить различные дескрипторы развертывания JBoss (jboss-deployment-structure.xml, jboss-scan.xml, jboss-web.xml), которые упакованы в приложение WAR чтобы приложение работало над WildFly 9. К сожалению, эти изменения, похоже, нарушают совместимость нашего приложения со старыми версиями JBoss.Несколько дескрипторов развертывания JBoss/WildFly в одном WAR

Есть ли способ иметь несколько версий дескриптора развертывания JBoss в одном архиве WAR, чтобы каждая версия JBoss выбирала самую высокую версию, которую она может поддерживать?

Наша цель - иметь одно приложение WAR, которое работает без изменений на JBoss 6.x EAP, JBoss 7.x Community, а также WildFly 8.x и 9.x.

+0

Только примечание, jboss-scan.xml больше не используется в AS7 +/EAP6 + и вообще не влияет на ваше развертывание. – ctomc

+0

Каковы различия между дескрипторами для AS7/EAP6 и теми, что для WildFly? Это поможет нам понять, что можно сделать для унификации конфигурации – ctomc

+0

В конце концов это оказалось проблемой с дескриптором jboss-deployment-structure.xml. В нем у нас была строка, которая читала . Хотя это не вызвало проблем в JBoss 6/7, это вызвало проблему в WildFly 9, потому что WF9 ожидает, что имя псевдонима модуля начнется с «развертывания». Добавление этого префикса устранило проблему, и мы можем продолжать использовать один набор дескрипторов развертывания для всех выпусков JBoss/WF. –

ответ

1

К сожалению, в настоящее время нет способа сделать это с помощью одного файла jboss-deployment-structure.xml.

Мои команды приняли один из следующих подходов к решению этого:

  1. Создайте пользовательский модуль, который получает установлен в каждом сервере приложений и иметь JBoss развертывания, структура файла только ссылки на этот пользовательский модуль.

  2. имеют отдельный профиль maven для каждого сервера приложений, на который вы хотите развернуть. Это не идеально, потому что он создает разные военные файлы для разных серверов. Это необходимо для проектов, в которых также необходимо изменить другие файлы, например beans.xml или web.xml.

Смежные вопросы