Java Weblogic 12c和Spring数据JPA部署JPA 2.1冲突
我正在尝试将一个SpringDataJPA、ApacheCXF集成项目部署到OracleWebLogic12c(12.1.3),该项目具有以下依赖项和异常Java Weblogic 12c和Spring数据JPA部署JPA 2.1冲突,java,hibernate,spring-data,weblogic12c,jpa-2.1,Java,Hibernate,Spring Data,Weblogic12c,Jpa 2.1,我正在尝试将一个SpringDataJPA、ApacheCXF集成项目部署到OracleWebLogic12c(12.1.3),该项目具有以下依赖项和异常 jdk:1.7 weblogic:12c(12.1.3) spring.version>4.1.0.0发布 spring.data.version>1.7.2.0版本发布 hibernate.version>4.3.11.Final 到目前为止,我做到了 试图从hibernate entitymanager中删除JPA 2.1 jar(
- jdk:1.7
- weblogic:12c(12.1.3)
- spring.version>4.1.0.0发布
- spring.data.version>1.7.2.0版本发布
- hibernate.version>4.3.11.Final
- 试图从hibernate entitymanager中删除JPA 2.1 jar(无效,引发另一个异常)
- 试图找出spring数据jpa、spring和hibernate依赖项检查(未成功)
- 尝试为首选包javax.persistence.*提供weblogic-application.xml(不改变任何内容)
- 部署到12.2.1,它确实可以工作
<Warning> <HTTP> <BEA-101162> <User defined listener org.springframework.web.context.ContextLoaderListener failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/app-jpa-config.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/app-jpa-config.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:1568)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:540)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)
Truncated. see log file for complete stacktrace
Caused By:java.lang.NoSuchMethodError: javax.persistence.JoinColumn.foreignKey()Ljavax/persistence/ForeignKey;
at org.hibernate.cfg.AnnotationBinder.bindManyToOne(AnnotationBinder.java:2884)
at org.hibernate.cfg.AnnotationBinder.bindOneToOne(AnnotationBinder.java:3051)
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1839)
at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:963)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:796)
Truncated. see log file for complete stacktrace
log4j
log4j
${log4j.version}
回写
回归经典
1.1.2
org.slf4j
slf4j api
org.slf4j
slf4j api
1.7.7
org.springframework
弹簧试验
${spring.version}
朱尼特
朱尼特
${junit.version}
测试
net.sf.推土机
推土机
5.5.1
com.oracle
ojdbc6
11.2.0
JoinColumn.foreignKey()是在JPA 2.1中引入的,它是在Hibernate 4.3中实现的,因此WebLogic可能正在使用它自己的JPA JAR,而JPA JAR的版本较旧。
您的代码在Weblogic 12.2.1上运行时没有问题这一事实将证实这一点。JPA2.1是JavaEE7标准的一部分,它受WebLogic12.2.1的支持,根据 在WebLogic上设置首选软件包时,您的做法是否正确。 试着通过这个
将JPA2.1库添加到WebLogic服务器类路径 谢谢,成功了。但我仍然不明白为什么weblogic忽略了weblogic-application.xml提供的首选包定义。另外,jpa2.1.jar位于应用程序的lib文件夹下。@sabri您是否设法解决了JPA和weblog 12.1的所有依赖性问题?@Chrispie我们已将所有版本升级到;spring.version>4.2.8.RELEASE,spring.data.version>1.10.5.RELEASE,hibernate.version>4.3.11.Final,hibernate.validator.version>5.1.2.Final,cxf.version>3.1.6。现在它开始工作了。以及JDK1.8.0_65。weblogic.xml没有任何额外的首选包声明。
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<spring.version>4.1.0.RELEASE</spring.version>
<spring.data.version>1.7.2.RELEASE</spring.data.version>
<hibernate.version>4.3.11.Final</hibernate.version>
<hibernate.validator.version>5.1.2.Final</hibernate.validator.version>
<cxf.version>3.0.0</cxf.version>
<log4j.version>1.2.17</log4j.version>
<junit.version>4.12</junit.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>${spring.data.version}</version>
<exclusions>
<exclusion>
<artifactId>spring-beans</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-core</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-aop</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-context</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-tx</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-orm</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-framework-bom</artifactId>
<version>${spring.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Hibernate -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
<scope>compile</scope>
</dependency>
<!-- LOG -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.2</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.7</version>
</dependency>
<!-- TEST -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
<!-- Object2Object mapping -->
<dependency>
<groupId>net.sf.dozer</groupId>
<artifactId>dozer</artifactId>
<version>5.5.1</version>
</dependency>
<!-- ORACLE -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0</version>
</dependency>
</dependencies>