2
我有一个MDB监听一个JMS队列,在onMessage()我需要调用我正在使用SpringBeanAutowiringInterceptor的spring bean。Weblogic:Spring应用程序上下文加载失败:导致:java.lang.NoSuchMethodError:javax.persistence.Table.indexes()
当我将消息发布到JMS队列中时,MDB实际上是试图加载Spring应用程序上下文,但失败并显示以下错误。
Caused By: org.springframework.beans.factory.access.BootstrapException:
Unable to initialize group definition. Group resource name [classpath*:beanRefContext.xml],
factory key [null]; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'parentBeanFactory' defined in URL
[zip:C:/Oracle/Middleware/Oracle_Home/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_user/factoryadaptor-1.0.0-api/4f4fxo/war/WEB-INF/lib/_wl_cls_gen.jar!/beanRefContext.xml]:
Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException:
Could not instantiate bean class [org.springframework.context.support.ClassPathXmlApplicationContext]:
Constructor threw exception; nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'localEntityManagerFactory' defined in class path resource [beans/applicationContext-db.xml]: Invocation of init method failed;
nested exception is java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
的ApplicationContext-db.xml的摘录
<tx:annotation-driven transaction-manager="jpaTransactionManager" />
<bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager" >
<property name="entityManagerFactory" ref="localEntityManagerFactory" />
</bean>
<bean id="localEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="DMS" />
<property name="persistenceXmlLocation" value="classpath*:config/persistence1.xml" />
</bean>
<bean id="entityManager" class="org.springframework.orm.jpa.support.SharedEntityManagerBean">
<property name="entityManagerFactory" ref="localEntityManagerFactory" />
</bean>
的pom.xml的摘录如下
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit-dep</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc5</artifactId>
<version>11.2.0</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.0.Final</version>
</dependency>
正如我在蚀依赖性的层次结构参见休眠-的EntityManager -4.3.0.Final.jar包含hibernate-jpa-2.1-api.jar。
与Junit一起尝试与DB进行交互操作时,相同的配置效果很好。当我在weblogic 12c中部署战争时,我正面临着上述问题。
有没有人有类似的问题?
你有'冬眠,JPA-2.1-API。在Weblogic类路径中的jar?看起来像weblogic 12c默认使用旧的JPA API。 –
感谢您的回复Artem Bilan。因为我有hibernate-entitymanager-4.3.0.Final jar作为依赖项,所以添加hibernate-jpa-2.1-api.jar作为依赖项,如eclipse依赖关系层次结构中所示。另外我在战争中检查了WEB-INF/lib目录,它有hibernate-jpa-2.1-api.jar。 –
我暂时能够通过用hibernate-entitymanager-4.2.8替换hibernate-entitymanager-4.3.0.Final来解决此应用程序上下文加载问题.Final –