我一直在将我们的 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 .这相当于将正确的 jar 放在类路径中,您可以通过将其添加到 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
关于java - 如何启用 Weblogic 12.1.2 JPA 2.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532109/