Hibernate ASM Spring java.lang.NoSuchMethodError会话工厂
我想我已经知道问题出在哪里了。我一直在犯这个错误Hibernate ASM Spring java.lang.NoSuchMethodError会话工厂,java,spring,hibernate,glassfish,Java,Spring,Hibernate,Glassfish,我想我已经知道问题出在哪里了。我一直在犯这个错误 org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void proTurism.DAO.AbstractDAO.setSession(org.hibernate.SessionFactory); nested exception is org.springframework.beans.factory.BeanCr
org.springframework.beans.factory.BeanCreationException:
Could not autowire method: public void proTurism.DAO.AbstractDAO.setSession(org.hibernate.SessionFactory); nested exception is org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]:
Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(I)V
org.springframework.beans.factory.BeanCreationException:
无法自动连接方法:public void proTurism.DAO.AbstractDAO.setSession(org.hibernate.SessionFactory);嵌套异常为org.springframework.beans.factory.BeanCreationException:
创建ServletContext资源[/WEB-INF/applicationContext.xml]中定义的名为“sessionFactory”的bean时出错:
调用init方法失败;嵌套的异常是java.lang.NoSuchMethodError:org.objectweb.asm.ClassWriter。(I)V
问题应该是两个不兼容的ASM版本,一个使用spring,另一个使用hibernate。我有hibernate ASM(netbeans 7.1中打包的未知版本)和spring ASM(3.0.6)。但我还没有找到任何解决方案,如何让一个asm或任何东西在glassfish和netbeans中工作
my applicationcontext.xml
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="packagesToScan" value="proTurism"/>
<property name="configurationClass">
<value>org.hibernate.cfg.AnnotationConfiguration</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
org.hibernate.cfg.AnnotationConfiguration
org.hibernate.dialogue.mysqldialogue
真的
这是一个棘手的依赖性问题。只有当您的两个库(hibernate和spring)依赖于相同版本的ASM,或者在使用的功能方面依赖于非冲突版本的ASM时,才能解决此问题。如果不是这样,则升级/降级spring/hibernate,直到它工作为止
如果使用Maven,它会自动向您显示哪个工件需要哪个版本的依赖项,并且更容易跟踪和使用。即使不使用maven,您仍然可以检查hibernate和spring的pom定义,查看它们使用的asm版本。这是一个棘手的依赖性问题。只有当您的两个库(hibernate和spring)依赖于相同版本的ASM,或者在使用的功能方面依赖于非冲突版本的ASM时,才能解决此问题。如果不是这样,则升级/降级spring/hibernate,直到它工作为止 如果使用Maven,它会自动向您显示哪个工件需要哪个版本的依赖项,并且更容易跟踪和使用。即使不使用maven,您仍然可以检查hibernate和spring的pom定义,查看它们使用的asm版本