2016-04-29 3 views
0

Я пытаюсь развернуть веб-приложение на базе Hibernate на JBoss 7 1.1.0.Final. Используемый выпуск Hibernate - 4.2.21.Final. У меня есть всевозможные проблемы, которые я могу только предположить, чтобы быть столкновениями классов. Hibernate, dom4j, ... чтобы назвать несколько.JBoss AS 7: как найти модули для исключения?

Если я не ошибаюсь, когда вы не имеете права изменять конфигурацию JBoss, решение должно предоставить WEB-INF/jboss-deployment-structure.xml список исключаемых модулей.

Это правильное предположение?

Во-первых, я пытаюсь решить непонятное исключение класса класса dom4j. Исключение модуля «org.dom4j» не помогает. Я также пытался исключить все модули в зависимости от этого. И те, в зависимости от них. И т. Д. В конце концов удаление бара dom4j из файла войны действительно сработало.

Увы, мы разрабатываем веб-приложение, содержащее разную версию Dom4j, Hibernate &. Мы не можем обновить Hibernate на экземпляре JBoss, и одно и то же приложение должно запускаться на разных серверах приложений. Поэтому мы также не можем удалить банки из военного файла.

Мой вопрос: как узнать, какие модули исключить? Чтобы разрешить столкновения классов.

+0

Вы смогли это решить? – Sampada

+0

Пока нет. Это часть долгой проверки совместимости нашего приложения со всеми типами серверов приложений JEE 6. Сейчас мы сражаемся с Glassfish. :-) –

+0

Прохладный. Все самое лучшее с этим! – Sampada

ответ

0

Из-за отсутствия лучшего понимания, я использовал очень примитивный способ решения таких вопросов, как этот в JBoss. Я просто ищу в каталоге modules/system/layers/base JBOSS_HOME для ссылки на оскорбительную банку. Это дает вам список исключений.

Но иногда этот список оказывается довольно длинным, и вы не можете действительно исключить все в нем. В этом случае банки, которые вы хотите использовать JBOSS (а не те, которые связаны с ним, DOM, Hibernate и т. Д. В вашем случае), могут быть добавлены в качестве настраиваемого модуля. Этот модуль может быть затем добавлен в глобальном модуле в standalone.xml:

<subsystem xmlns="urn:jboss:domain:ee:1.1"> 
      <global-modules>     
       <module name="my.custom.module"/> 
      </global-modules> 
      <spec-descriptor-property-replacement>false</spec-descriptor-property-replacement> 
      <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement> 
    </subsystem> 

Кроме того, необходимо добавить этот <my.custom.module> как зависимость от любого другого пользовательского модуля, который вы могли бы определены.

Это работало для меня не один раз. Надеюсь, это вам тоже поможет.

+0

Спасибо! Как только я вернусь к JBoss, я попробую это. :-) –

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