我一直在将我们的 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,我不是应用程序服务器方面的专家。
Regards.
如果您可以升级到 12.1.3,则包含 JPA 2.1 支持,但默认情况下禁用,您可以按照他们启用它的说明 https://docs.oracle.com/middleware/1213/wls/EJBAD/using_toplink.htm#EJBAD1508。这相当于将正确的 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)