Hibernate ASM Spring java.lang.NoSuchMethodError sessionFactory - PullRequest
0 голосов
/ 22 марта 2012

Я думаю, я уже знаю, в чем проблема.я продолжаю получать эту ошибку

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

Проблема состоит в том, что 2 несовместимых версии ASM, одна из которых использует пружину, а другая - в спящем режиме.У меня есть 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>

1 Ответ

3 голосов
/ 22 марта 2012

Это сложная проблема зависимости. Вы можете решить ее, только если ваши две библиотеки (hibernate и spring) зависят либо от той же версии ASM, либо от неконфликтующих версий ASM с точки зрения используемой функциональности. Если это не так, обновите / понизьте пружину / спящий режим, пока она не заработает.

Если вы используете Maven, он автоматически покажет вам, какой артефакт требует, какие версии его зависимостей, и с ним будет легче отслеживать и играть. Даже если вы не используете maven, вы можете проверить определения pom в hibernate и spring, чтобы увидеть, с какими версиями asm они работают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...