关于这个错误网上搜索出来的东西,都是说什么jar冲突,全是复制粘贴,解决的方法都是一样的。没能解决我所遇到的问题。
这个问题 我的解决方法 就是在 weblogic.xml 配置文件中指定优先加载javax.persistence.* 这个路径下的class 文件。
在这个标签 <prefer-application-packages> 中加入 <package-name>javax.persistence.*</package-name>
<?xml version="1.0" encoding="UTF-8"?>
<!--<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://www.oracle.com/technology/weblogic/weblogic-web-app/1.1/weblogic-web-app.xsd">-->
<weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://www.oracle.com/technology/weblogic/weblogic-web-app/1.1/weblogic-web-app.xsd">
<!--<library-ref>
<library-name>coherence-web-spi</library-name>
</library-ref>
<coherence-cluster-ref>
<coherence-cluster-name>Coherence-0</coherence-cluster-name>
</coherence-cluster-ref> -->
<jsp-descriptor>
<keepgenerated>false</keepgenerated>
<!-- page-check-seconds默认值是1,表示每隔1秒对JSP页面进行检查,检查JSP页面是否被修改、是否需要重新编译。
系统上线后会影响性能,需要对该默认值修改为-1,表示永不检查 -->
<page-check-seconds>-1</page-check-seconds>
<verbose>true</verbose>
<debug>true</debug>
</jsp-descriptor>
<container-descriptor>
<!-- 指示优先从部署项目的WEB-INF/lib目录下加载jar包,解决WegLogic与hibernate包冲突问题 -->
<prefer-web-inf-classes>false</prefer-web-inf-classes>
<prefer-application-packages>
<package-name>javax.persistence.*</package-name>
<package-name>antlr.*</package-name>
<package-name>org.apache.commons.lang.*</package-name>
<package-name>org.apache.commons.lang3.*</package-name>
</prefer-application-packages>
<!-- servlet-reload-check-secs的默认值也是1,每隔1秒检查servlet是否被修改并需要重新编译,
很影响性能。这里建议修改为-1,表示永不检查 -->
<servlet-reload-check-secs>-1</servlet-reload-check-secs>
</container-descriptor>
<!-- <context-root>/</context-root> -->
</weblogic-web-app>