Java NoSuchMethodError错误创建会话工厂
我正在尝试使用hibernate创建项目,但在创建Java NoSuchMethodError错误创建会话工厂,java,spring,hibernate,Java,Spring,Hibernate,我正在尝试使用hibernate创建项目,但在创建会话工厂的行中出现异常,如果我删除这一行,项目将成功运行。 我读了这篇文章,并添加了依赖项hibernate commons注释,但这并不能解决问题 Caused by: java.lang.NoSuchMethodError: org.hibernate.annotations.common.reflection.java.JavaReflectionManager.injectClassLoaderDelegate(Lorg/hibernat
会话工厂
的行中出现异常,如果我删除这一行,项目将成功运行。
我读了这篇文章,并添加了依赖项hibernate commons注释
,但这并不能解决问题
Caused by: java.lang.NoSuchMethodError: org.hibernate.annotations.common.reflection.java.JavaReflectionManager.injectClassLoaderDelegate(Lorg/hibernate/annotations/common/reflection/ClassLoaderDelegate;)V
at org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl.generateDefaultReflectionManager(MetadataBuilderImpl.java:737)
at org.hibernate.boot.internal.MetadataBuilderImpl$MetadataBuildingOptionsImpl.<init>(MetadataBuilderImpl.java:709)
at org.hibernate.boot.internal.MetadataBuilderImpl.<init>(MetadataBuilderImpl.java:127)
at org.hibernate.boot.MetadataSources.getMetadataBuilder(MetadataSources.java:135)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:655)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
at com.secure.dao.impl.UserDaoImpl.<init>(UserDaoImpl.java:20)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
依赖关系
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1203-jdbc42</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>3.2.0.Final</version>
</dependency>
</dependencies>
org.springframework
SpringWebMVC
4.2.1.1发布
org.springframework
弹簧网
4.2.1.1发布
javax.servlet
javax.servlet-api
3.1.0
javax.servlet
jstl
1.2
org.springframework.security
spring安全网
4.0.2.1发布
org.springframework.security
spring安全内核
4.0.2.1发布
org.springframework.security
spring安全配置
4.0.2.1发布
org.springframework.security
spring安全标记库
4.0.2.1发布
org.hibernate
休眠实体管理器
5.0.1.最终版本
org.hibernate
冬眠核心
5.0.1.最终版本
org.postgresql
postgresql
9.4-1203-jdbc42
org.slf4j
slf4j api
1.7.12
org.hibernate
hibernate commons注释
3.2.0.1最终版本
从Hibernate v3.6开始,注释类已合并到core中。您已经在一个非常旧的注解jar上指定了一个依赖项,它不是用Hibernate core 5.0.1编译的
只需删除对hibernate commons annotations的依赖,就可以解决这个问题。hibernate v3.6中的annotations类已合并到core中。您已经在一个非常旧的注解jar上指定了一个依赖项,它不是用Hibernate core 5.0.1编译的
只需删除对
hibernate commons注释的依赖,这应该得到解决。只是出于好奇-为什么在pom.xml中需要hibernate commons注释?哦,我读这篇文章时没有注意,其中描述了ClassCastException
,但我没有NoSuchMethodError
的权利。即使您有ClassCastException,本文建议删除hibernate commons注释,而不是添加它。实际上,您可能希望从pom.xml中删除它,然后清理maven repository并重新安装项目,来自命令行:mvn-U clean install只是出于好奇-为什么在pom.xml中需要hibernate commons注释?哦,我读这篇文章时没有注意,上面描述了ClassCastException
,但我的NoSuchMethodError
是正确的。即使您有ClassCastException,本文建议删除hibernate commons注释,而不是添加它。实际上,您可能希望从pom.xml中删除它,然后清理maven repository并重新安装项目,例如从命令行:mvn-U clean installyes,我在阅读pzeszko的注释时解决了这个问题,thx!是的,我在阅读pzeszko的评论时解决了这个问题,谢谢!
private SessionFactory sessionFactory = new Configuration().configure("hibernate.cfg.xml").buildSessionFactory();
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>5.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.4-1203-jdbc42</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-commons-annotations</artifactId>
<version>3.2.0.Final</version>
</dependency>
</dependencies>