2012-04-26 3 views
2

Я пытаюсь развернуть мое приложение и веб-сервис для WebLogic, используя следующие версии:JPA Конфликт с Hibernate и Weblogic

  • Weblogic 10.3.5
  • Hibernate 4.1.1
  • Hibernate JPA API 2.0
  • EJB 2.0
  • Java 6

Когда я называю мой мы b обслуживание Я получаю сообщение об ошибке

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"> 
    <S:Body> 
     <ns2:Fault xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.w3.org/2003/05/soap-envelope"> 
     <faultcode>ns2:Server</faultcode> 
     <faultstring>javax/persistence/OneToMany.orphanRemoval()Z</faultstring> 
     <detail> 
      <ns2:exception class="java.lang.NoSuchMethodError" note="To disable this feature, set com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace system property to false" xmlns:ns2="http://jax-ws.dev.java.net/"> 
       <message>javax/persistence/OneToMany.orphanRemoval()Z</message> 
       <ns2:stackTrace> 
        <ns2:frame class="org.hibernate.cfg.AnnotationBinder" file="AnnotationBinder.java" line="1868" method="processElementAnnotations"/> 
        <ns2:frame class="org.hibernate.cfg.AnnotationBinder" file="AnnotationBinder.java" line="768" method="processIdPropertiesIfNotAlready"/> 
... 

Я проверил и нет других персистентных апитов.

Мой внешний список фляга:

  • муравей-Jakarta-орально-1.6.jar
  • ANTLR-2.7.2.jar
  • aspectjrt-1.5.3.jar
  • кактус. core.framework.uberjar.javaEE.14-1.8.1.jar
  • cactus.integration.maven2-1.8.1.jar
  • Викисклада BeanUtils-1.8.0.jar
  • Обще-цепной 1.2.jar
  • Обще-кодек-1.3.jar
  • Викисклад коллекция-3.2.1.jar
  • Обще-варочный-1.8.jar
  • Обще-FileUpload-1.1.1 .jar
  • Обще-HttpClient-2,0-rc2.jar
  • Обще-lang3-3.0.1.jar
  • Обще-каротаж 1.1.1.jar
  • Обще-валидатор-1.3.1.jar
  • dom4j-1.6.1.jar
  • родовой-веб-сервис-схема-4.0.jar
  • Hibernate-Викисклад аннотации-4.0.1.Final.jar
  • hibernate-core-4.1.1.Final .jar
  • Hibernate-JPA-2,0-апи-1.0.1.Final.jar
  • HttpUnit-1.6.jar
  • Javassist-3.15.0-GA.jar
  • JBoss-3.1.0-каротажа .GA.jar
  • jboss-transaction-api_1.1_spec-1.0.0.Final.jar
  • JS-1.5R4.1.jar
  • JSTL-1.0.2.jar
  • jtidy-4aug2000r7-dev.jar
  • JUnit-3.8.2.jar
  • nekohtml-1.9.6.jar
  • oracle.webservices.standalone.client-11.1.1.jar
  • oro-2.0.8.jar
  • стандартного 1.0.6.jar
  • распорки-ядро-1.3.10.jar
  • распорки-эль-1.3.10.jar
  • -распорки TagLib-1.3.10.jar
  • распорки-плитка-1.3.10.jar
  • WebLogic-WebServices-апи-1.1.0.0.jar
  • xercesImpl-2.8.1.jar
  • XML-АПИС-1.3.03.jar
  • xmlParserAPIs-2.2.1.jar

Я проверил эти и Hibernate JPA является единственным с классом OneToMany. Я знаю, что проблема заключается в конфликте между JPA 1.0 и JPA 2.0, поэтому я просто хочу знать, есть ли способ конфликта.

Благодаря

ответ

1

Вы должны использовать Hibernate JPA 2.0 API?

in WebLogic doc Как уже упоминалось, WebLogic 10.3.5, кажется, примерно только одну поддержку JPA 2.0 провайдера, который называется TopLink.

Может быть, вы могли бы просто удалить hibernate-jpa-2.0-api-1.0.1.Final.jar от вашего пути к классам и попробуйте describedat использовать TOPLINK как в вышеупомянутой документации WebLogic.

Я просто дать записочку данную документацию: по умолчанию WebLogic 10.3.5 использует JPA 1.0 для того, чтобы поддерживать Java EE 5 совместимости. Поскольку JPA 2.0 является частью Java EE 6, вы должны явно включить его.

+0

Hibernate звук зависимость банка Maven JPA не может быть удален. Я нашел документ, о котором вы говорили для JPA 2.0 в Weblogic. Это говорит Weblogic, что JPA 2.0 должны применяться в целом и Weblogic сделано либо в виде пластыря или ручного взлома. Придется ли кто-то будет использовать сервер Weblogic или я откатить до 3,3 Hibernate (JPA 1.0). Благодаря Paul –

+1

3.4.0 GA Был я думаю, что последняя версия Hibernate JPA, который был –

+0

WebLogic 10.3.5 1. 2. Поддержка JPA делает –

3

WebLogic 10.3.5 может поддерживать JPA 2 После применения патча только цели, как describedat на этой странице: (По крайней мере, это то, как я получил его на работу для меня.)

Он сводился к редактированию и добавлению javax.persistence_1.0.0.0_2-0-0.jarsetDomainEnv.cmd и com.oracle.jpa2support_1.0.0.0_2-0.jarPRE_CLASSPATH переменного окружения.

WebLogic Для моей установки Windows XP я добавил следующие строки:

REM Add JARs for JPA 2.0 at the front of the class path. 
set WLS_MODULES=%WL_HOME%\..\modules 
set PRE_CLASSPATH=%WLS_MODULES%\javax.persistence_1.0.0.0_2-0-0.jar;%WLS_MODULES%\com.oracle.jpa2support_1.0.0.0_2-0.jar 

удачи
Рэнди

+0

Спасибо за это. См. Выше, что мы закончили делать –

+0

Это решение применяется также к WebLogic 10.3.6.0? У меня точно такая же проблема, и это решение не работает. – Opal

+0

Опал, извините. Я не знаю. –