當你在tomcat下開發web應用遷移到weblogic上運行時若是報諸如此類錯誤: html
1:javax.validation.ValidationException: HV000041: Call to TraversableResolver.isReachable() threw an exception. java
2:Caused By: javax.persistence.PersistenceException: Failed to load provider from META-INF/services linux
3:Caused By: java.lang.ClassCastException: org.apache.openjpa.persistence.PersistenceProviderImpl cannot be cast to javax.persistence.spi.PersistenceProvider web
這個問題是因爲weblogic自身的jpa jar包和web應用使用的jpa jar衝突致使的,解決以上問題: apache
1:須要在web應用的WEB-INF目錄下添加weblogic.xml文件,其中要添加上<prefer-web-inf-classes>true</prefer-web-inf-classes>內容。須要注意的是weblogic.xml文件的xmlns最好和weblogic容器的weblogic.xml文件的xmlns一致。 tomcat
2:以linux爲準,在weblogic的安裝目錄下修改一下文件: dom
setDomainEnv.sh和startWebLogic.sh,這兩個文件存放在一下目錄:user_projects/domains/weblogic/bin ide
setDomainEnv.sh修改內容以下: spa
添加了:JAVA_OPTIONS="${JAVA_OPTIONS} -DUseSunHttpHandler=true" xml
startWebLogic.sh修改內容以下:
添加了:export EXTRA_JAVA_PROPERTIES="-DUseSunHttpHandler=true",去掉了:export JAVA_OPTIONS內容
完成以上步驟後,重啓weblogic便可。
參考地址爲:http://blog.sina.com.cn/s/blog_4c925dca01014vnt.html