2015-07-29 3 views
4

Я искал решение этой проблемы без успеха.Использование JPA 2.1 в EAP 6.4.0

Мы переносим наши приложения на EAP 6.4.0, и наши приложения основываются на JPA 2.1. Однако JBoss является сервером Java EE 6 и поэтому включает JPA 2.0 в виде модуля.

Я попытался включить JPA API jar прямо в мой каталог WEB-INF/lib, думая, что загрузчик классов предпочтет это над одним из системы.

Я попытался включить файл jboss-deployment-structure.xml в ухо. Я попробовал это под ухом/META-INF, ухом/войной/META-INF, а также ухом/войной/WEB-INF.

В файле JBoss развертывания-structure.xml, я пытался: исключить модуль javax.persistence.api создать свой собственный модуль с JPA 2.1 и добавить зависимость к нему исключает JPA подсистему

Я также попытался установить атрибут export в false в файле javax.persistence.api module.xml, расположенном под jboss-eap-6.4.0 \ modules \ system \ layers \ base \ javax \ persistence \ api \ main

Я попытался удалить подсистему jpa из файла standalone.xml.

Все это привело к использованию банок JPA 2.0.

Единственный способ, с помощью которого я работал, состоял в том, чтобы заменить фактическую банку в каталоге модуля (jboss-eap-6.4.0 \ modules \ system \ layers \ base \ javax \ persistence \ api \ main). Но это не приемлемое решение, поскольку другим приложениям или службам на сервере может понадобиться старая версия API.

Есть ли способ сделать это правильно (без перехода на другой сервер или смены кода)?

ответ

6

Пожалуйста, обратите внимание на: https://issues.jboss.org/browse/WFCORE-209

Это копия с указанной выше ссылке:

обходного 1

обновление JavaEE/API/main.module.xml как следует :

<!--<module name="javax.persistence.api" export="true"/>--> 

, хотя это не является переносимым.

Обойти 2

обновление JBoss развертывания-structure.xml как следует:

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
     <exclude-subsystems> 
      <subsystem name="jpa" /> 
     </exclude-subsystems> 
     <exclusions> 
      <!-- WFCORE-209 workaround --> 
      <module name="javaee.api" /> 
      <!-- --------------------- --> 
      <module name="javax.persistence.api" /> 
      <module name="org.hibernate" /> 
     </exclusions> 
     <dependencies> 
      <!-- WFCORE-209 workaround --> 
      <module name="javax.activation.api" export="true"/> 
      <module name="javax.annotation.api" export="true"/> 
      <module name="javax.ejb.api" export="true"/> 
      <module name="javax.el.api" export="true"/> 
      <module name="javax.enterprise.api" export="true"/> 
      <module name="javax.enterprise.deploy.api" export="true"/> 
      <module name="javax.inject.api" export="true"/> 
      <module name="javax.interceptor.api" export="true"/> 
      <module name="javax.jms.api" export="true"/> 
      <module name="javax.jws.api" export="true"/> 
      <module name="javax.mail.api" export="true"/> 
      <module name="javax.management.j2ee.api" export="true"/> 
      <!-- <module name="javax.persistence.api" export="true"/> --> 
      <module name="javax.resource.api" export="true"/> 
      <module name="javax.rmi.api" export="true"/> 
      <module name="javax.security.auth.message.api" export="true"/> 
      <module name="javax.security.jacc.api" export="true"/> 
      <module name="javax.servlet.api" export="true"/> 
      <module name="javax.servlet.jsp.api" export="true"/> 
      <module name="javax.transaction.api" export="true"/> 
      <module name="javax.validation.api" export="true"/> 
      <module name="javax.ws.rs.api" export="true" services="export"/> 
      <module name="javax.xml.bind.api" export="true"/> 
      <module name="javax.xml.registry.api" export="true"/> 
      <module name="javax.xml.soap.api" export="true"/> 
      <module name="javax.xml.ws.api" export="true"/> 

      <!-- This one always goes last. --> 
      <module name="javax.api" export="true"/> 
      <!-- --------------------- --> 
     </dependencies> 
    </deployment> 
</jboss-deployment-structure> 

это полностью портативный

+0

это решение работает на JBoss еар 6.4, спасибо! –

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