如何启用 Weblogic 12.1.2 JPA 2.1

How to enable Weblogic 12.1.2 JPA 2.1

我一直在将我们的 Web 应用程序部署到 Weblogic 服务器。然而,虽然我能够在这个新版本中成功部署应用程序,但应用程序无法启动并且用户无法登录。日志是:

May 29, 2015 4:38:47 PM org.springframework.web.context.ContextLoader initWebApplicationContext
SEVERE: Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1566)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)

我相信这是因为 Weblogic 默认启用 JPA 2.0(但我不确定)。有没有办法启用 JPA 2.1?

PS: 我们使用的是hibernate 4.3.8,我不是应用服务器方面的专家。

此致。

如果您可以升级到 12.1.3,则包含 JPA 2.1 支持但默认情况下禁用,您可以按照 their instructions for enabling it。这相当于将正确的罐子放在类路径上,您可以通过将其添加到 common/bin/commEnv.sh

的顶部来完成
PRE_CLASSPATH=$MW_HOME/oracle_common/modules/javax.persistence_2.1.jar:$MW_HOME/wlserver/modules/com.oracle.weblogic.jpa21support_1.0.0.0_2-1.jar
export PRE_CLASSPATH