1

Spring 2.5 で Hibernate3.jar を使用していましたが、Spring 3.2.4 にアップグレードしましたが、まだ Hibernate3.jar を使用していますが、アプリケーションの読み込み時にエラーが発生しています。

2013-10-25 23:20:19,513 ERROR [org.springframework.web.servlet.DispatcherServlet] - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [com/eam/deploy/tfcc-admin.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/context/CurrentSessionContext
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1482)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:521)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:458)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)

libフォルダーに次のjarファイルを追加しました。

spring-aop-3.2.4.RELEASE.jar
spring-aspects-3.2.4.RELEASE.jar
spring-beans-3.2.4.RELEASE.jar
spring-context-3.2.4.RELEASE.jar
spring-context-support-3.2.4.RELEASE.jar
spring-core-3.2.4.RELEASE.jar
spring-expression-3.2.4.RELEASE.jar
spring-jdbc-3.2.4.RELEASE.jar
spring-orm-3.2.4.RELEASE.jar
spring-tx-3.2.4.RELEASE.jar
spring-web-3.2.4.RELEASE.jar
spring-webmvc-3.2.4.RELEASE.jar

SessionFactoryBean 構成:

<bean id="sessionFactory"
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="mappingResources">
            <list>
                <value>com/eam/hibernate/User.hbm.xml</value>
                <value>com/eam/hibernate/Branch.hbm.xml</value>
                <value>com/eam/hibernate/Address.hbm.xml</value>
            </list>
        </property>
    </bean>

ありがとう。

4

3 に答える 3

1

次のことを行うことで、この問題を自分で解決しました.1.古いhibernate3.jarとhibernate-annotation.jarを削除し、2つの新しいjarを追加しました

hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.6.10.Final.jar
persistence-api-1.0.jar

そして今、クラスパスに次の春関連のjarがあります。

spring-aop-3.2.4.RELEASE.jar
spring-aspects-3.2.4.RELEASE.jar
spring-beans-3.2.4.RELEASE.jar
spring-context-3.2.4.RELEASE.jar
spring-context-support-3.2.4.RELEASE.jar
spring-core-3.2.4.RELEASE.jar
spring-expression-3.2.4.RELEASE.jar
spring-jdbc-3.2.4.RELEASE.jar
spring-orm-3.2.4.RELEASE.jar
spring-tx-3.2.4.RELEASE.jar
spring-web-3.2.4.RELEASE.jar
spring-webmvc-3.2.4.RELEASE.jar

ありがとう、

于 2013-10-26T03:28:03.537 に答える
0
  • クラスパスに hibernate3.jar がまだあるかどうかを確認します
  • 古いSpring 2.5 jarの依存関係を削除したことを確認してください。(しかし、衝突があったとしても、Spring クラスがハイバネートされていない場合は NoClassDef だったでしょう)
  • hibernate3.jar が依存していた jar を削除したかどうかを確認します。これによりorg/hibernate/context/CurrentSessionContext、初期化が許可されなかった可能性があります。(スタックトレースにある可能性がありますExceptionInInitializerError

ここに NoClassDefFoundError の考えられる原因をリストアップしました。

NoClassDefFoundError のデバッグ

于 2013-10-25T19:48:42.940 に答える