java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass相关的知识,希望对你有一定的参考价值。
最近在看马士兵的spring,看到spring和hibernate整合,这边出了问题,麻烦哪位大牛帮我看下,谢谢...
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [bean.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean
Caused by: java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass(Ljava/lang/Class;)Lorg/hibernate/cfg/Configuration;
at org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean.postProcessMappings(AnnotationSessionFactoryBean.java:158)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:657)
at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSe
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="annotatedClasses">
<list>
<value>com.pm.model.User</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
public Configuration addAnnotatedClass(Class annotatedClass)
XClass xClass = this.reflectionManager.toXClass(annotatedClass);
this.metadataSourceQueue.add(xClass);
return this;
,你要是要的话我有这个包,可以发给你 参考技术B 从异常的信息来看是报找不到匹配的方法,无法通过注解,配置信息错误,你看看是不是注解出现了问题,名字错了,或者引用类名路径等等 参考技术C 我也遇到相同的问题了 ,解决了没?给点建议,谢谢!
ExecutionStrategy 构造方法上的异常 java.lang.NoSuchMethodError
【中文标题】ExecutionStrategy 构造方法上的异常 java.lang.NoSuchMethodError【英文标题】:Exception java.lang.NoSuchMethodError on ExecutionStrategy constructor method 【发布时间】:2019-02-09 15:32:24 【问题描述】:我在一个 Java 项目上使用 GraphQL,它在服务器上运行。 当我更改为另一台服务器时,它停止工作并抛出以下异常:
java.lang.NoSuchMethodError: graphql.execution.ExecutionStrategy.(Lgraphql/execution/DataFetcherExceptionHandler;)V 在 graphql.execution.AbstractAsyncExecutionStrategy.(AbstractAsyncExecutionStrategy.java:19) 在 graphql.execution.AsyncExecutionStrategy.(AsyncExecutionStrategy.java:23) 在 graphql.GraphQL$Builder.(GraphQL.java:199) 在 graphql.GraphQL.newGraphQL(GraphQL.java:166)
我使用的是完全相同的 Java 版本 (1.8.0_181)、相同的 graphql-java 依赖版本 (7.0) 和相同的项目版本。
我错过了什么吗?有同样问题的人吗?
提前致谢,
解决方案
在分析了我的每个项目依赖项的依赖项后,我注意到 graphql-java-annotations 正在导入 3.0 版的 graphql-java 库。 graphql-java 库是我之前提到的项目依赖项之一(使用的是 7.0 版)。
因此,两个不同版本的 graphql-java 被引用并相互冲突。
为了解决这个问题,我删除了 graphql-java 依赖,并开始只使用在 graphql-java-annotations 上导入的版本。
【问题讨论】:
【参考方案1】:通常这是因为依赖冲突。
您可以将其添加到您的 pom 中:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<compilerArgs>
<arg>-verbose</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
然后尝试打包您的应用程序,它将记录从哪个 jar 加载 graphql.execution.ExecutionStrategy
类。然后你可以检查它是否是正确的版本。
【讨论】:
是否对 pom 进行了建议的更改,并检查了graphql.execution.ExecutionStrategy
是从哪个 jar 导入的。使用的jar是graphql-java-7.0,没错。 maven 包的输出:[loading ZipFileIndexFileObject[.m2/repository/com/graphql-ja va/graphql-java/7.0/graphql-java-7.0.jar(graphql/ExecutionResult.class)]]
有什么建议吗?
@JoséMiguelMelo 也许你可以尝试更新版本到<version>9.2</version>
我解决了问题并将解决方案添加到问题中。一个小问题:正如解决方案中提到的,我将 graphql-java (v7.0) 和 graphql-java-annotation 库作为依赖项。最后一个作为依赖 graphql-java (v3.0)。 Graphql-java 版本相互冲突。不应该将内部依赖项替换为我的项目 pom.xml 中指定的依赖项吗?
@JoséMiguelMelo 不是专家,但也许 以上是关于java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.addAnnotatedClass的主要内容,如果未能解决你的问题,请参考以下文章