2012-03-22 4 views
0

Je pense que je sais déjà quel est le problème. Je continue à obtenir cette erreurHibernate ASM Spring java.lang.NoSuchMethodError sessionFactory

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 

Le problème shoulb être de 2 versions ASM un non compatibles à l'aide de printemps et une mise en veille prolongée. J'ai hibernate ASM (version inconnue emballée dans netbeans 7.1) et ASM de printemps (3.0.6). mais je n'ai trouvé aucune solution sur la façon d'obtenir un asm ou quelque chose pour le faire fonctionner dans glassfish avec netbeans.

mon 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> 

Répondre

3

C'est un problème de dépendance difficile. Vous ne pouvez le résoudre que si vos deux bibliothèques (hibernation et source) dépendent soit de la même version d'ASM, soit de versions non conflictuelles d'ASM en termes de fonctionnalité utilisée. Si ce n'est pas le cas, mettez à niveau/rétrograder le ressort/hibernation jusqu'à ce que cela fonctionne. Si vous utilisez Maven, il vous montrera automatiquement quel artefact nécessite quelles versions de ses dépendances et il sera plus facile de tracer et de jouer avec. Même si vous n'utilisez pas maven, vous pouvez toujours vérifier les définitions pom d'hibernate et spring pour voir quelles versions d'asm ils utilisent.

Questions connexes