tomcat中web項目遷移到weblogic上jar衝突概述和解決辦法

當你在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

相關文章
相關標籤/搜索