2016-02-09 4 views
2

Мы недавно мигрировали из JBoss 6.1 еара в 6,4 еара, но перед проблемой класса нагрузки.Необходимо исключить апач httpcomponent из JBoss 6.4 модуля

В моем проекте Lib Нам нужно использовать Apache httpcore 4.4.1, но апач httpcore 4.3.3 входит в 6.4. Это не было проблемой, когда мы использовали jboss 6.1, потому что resteasy-jaxrs module.xml не экспортировал библиотеку httpcore.

Теперь с JBoss 6.4 мы получаем исключение:

Caused by: java.lang.NoSuchMethodError: org.apache.http.util.Asserts.check(ZLjava/lang/String;Ljava/lang/Object;)V 

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

Теперь я хочу заставить мое приложение не использовать jboss jar и использовать jar из папки web-inf/lib.

Я попытался исключить это через jboss-deployment-structure.xml, но каким-то образом он не работает, и все же он использует jar только из jboss.

Ниже приведена ссылка на файл jboss-deployment-structure.xml.

<deployment> 
     <exclusions> 
      <module name="org.apache.httpcomponents" /> 
     </exclusions> 

     <dependencies> 
      module name="org.apache.httpcomponents" /> 
     </dependencies> 
</deployment> 

Может кто-то пожалуйста, помогите мне по этому поводу, что здесь отсутствует, или есть какая-то альтернатива для этого ...

ответ

1

Поскольку вы используете JBoss EAP, вы можете применить патч CP07 для EAP 6.4 (так ваша версия будет JBoss EAP 6.4.7), где эта проблема была устранена. Я настоятельно рекомендую применить патч CP07.

В качестве альтернативы вы можете установить <module name="org.apache.httpcomponents" export="false"/> в $JBOSS_MODULES\org\jboss\resteasy\resteasy-jaxrs\main\module.xml.

Однако я рекомендовал бы применять исправление как рекомендуемое решение. Таким образом, вы не будете изменять конфигурацию, поставляемую вместе с продуктом.