gpt4 book ai didi

java - Weblogic : Spring application context loading fails : Caused by: java. lang.NoSuchMethodError : javax. persistence.Table.indexes()

转载 作者:行者123 更新时间:2023-11-30 11:20:08 25 4
gpt4 key购买 nike

我有一个在 JMS 队列上监听的 MDB,在 onMessage() 中我需要调用一个我正在使用 SpringBeanAutowiringInterceptor 的 spring bean。

当我将消息发布到 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>

正如我在 hibernate-entitymanager-4.3.0.Final.jar 的 eclipse 依赖层次结构中所见,包括 hibernate-jpa-2.1-api.jar。

相同的配置在尝试作为 Junit 与 DB 交互时效果很好。当我在 weblogic 12c 中部署 war 时,我面临着上述问题。

有人遇到过类似的问题吗?

最佳答案

我能够通过在 weblogic.xml 中提供以下内容来解决这个问题,告诉 weblogic 你想使用提供的 hibernate (包括 jpa):

    <wls:prefer-application-packages>
<wls:package-name>org.hibernate.*</wls:package-name>
<wls:package-name>javax.persistence.*</wls:package-name>
<wls:package-name>javassist</wls:package-name>
</wls:prefer-application-packages>

关于java - Weblogic : Spring application context loading fails : Caused by: java. lang.NoSuchMethodError : javax. persistence.Table.indexes(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22890578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com