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