如果你在使用把jpa 2.0的web应用部署到weblogic server 10.3.6时出现下面这些异常:
java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode
或
java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider
网上找到的一些诸如:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>`
或
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app ...>
...
<container-descriptor>
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>org.hibernate.*</package-name>
<package-name>javax.persistence.*</package-name>
</prefer-application-packages>
</container-descriptor>
</weblogic-web-app>
之类的都是不好使的.
要这样弄:
修改domain下的setDomainEnv.cmd文件
在set WL_HOME=... 下面加上
@rem Enable JPA 2.0 functionality on WebLogic Server 10.3.6 with the following patch line for commEnv.cmd:67
set WLS_MODULES=%WL_HOME%\..\modules
set PRE_CLASSPATH=%WLS_MODULES%\javax.persistence_1.1.0.0_2-0.jar;%WLS_MODULES%\com.oracle.jpa2support_1.0.0.0_2-1.jar
在后在启动weblogic部署就可以了.
java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode
或
java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider
网上找到的一些诸如:
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>`
或
Xml代码
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app ...>
...
<container-descriptor>
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>org.hibernate.*</package-name>
<package-name>javax.persistence.*</package-name>
</prefer-application-packages>
</container-descriptor>
</weblogic-web-app>
之类的都是不好使的.
要这样弄:
修改domain下的setDomainEnv.cmd文件
在set WL_HOME=... 下面加上
@rem Enable JPA 2.0 functionality on WebLogic Server 10.3.6 with the following patch line for commEnv.cmd:67
set WLS_MODULES=%WL_HOME%\..\modules
set PRE_CLASSPATH=%WLS_MODULES%\javax.persistence_1.1.0.0_2-0.jar;%WLS_MODULES%\com.oracle.jpa2support_1.0.0.0_2-1.jar
在后在启动weblogic部署就可以了.