【问题标题】:Can't initialize sessionFactory. Hibernate 3 in Spring无法初始化 sessionFactory。春季休眠 3
【发布时间】:2011-12-13 13:18:18
【问题描述】:

这是我的 ApplicationContext.xml。由于这个错误,我无法运行我的程序:

线程“main”中的异常 org.springframework.beans.factory.BeanCreationException:在类路径资源 [ApplicationContext.xml] 中定义名称为“sessionFactory”的 bean 创建错误:bean 的实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 bean 类 [org.springframework.orm.hibernate3.LocalSessionFactoryBean]:构造函数抛出异常;嵌套异常是 java.lang.NoClassDefFoundError

我必须说 HibernateVoc 扩展了 HibernateDaoSupport。我查看了几个网页以寻找如何使用 HibernateDaoSupport,这些是否是初始化 sessionFactory 的正确属性......我还没有设法解决这个问题。

谢谢大家!

<bean id="datasource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.gjt.mm.mysql.Driver" />
<property name="url" value="jdbc:mysql://localhost/voc" />
<property name="username" value="root" />
<property name="password" value="" />
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="datasource" />
<property name="mappingResources">
    <list>
        <value>com/ju/voc/domain/words/Word.hbm.xml</value>
        <value>com/ju/voc/domain/categroies/Category.hbm.xml</value>
    </list>
</property>
<property name="hibernateProperties">
    <props>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
    </props>
</property>
</bean>
<bean id="hibernateVoc" class="com.ju.voc.data.HibernateVoc">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

附:我正在使用 Maven,所以我从那里下载库。

【问题讨论】:

  • 您的类路径中必须缺少某些类。堆栈跟踪中的“caused by”行应该告诉您更多关于它发生的位置以及可能缺少哪个类。

标签: java hibernate spring maven


【解决方案1】:

您缺少对休眠的依赖。

因为spring-orm 工件handles ORM using plain Hibernate, JPA, JDO and iBatis(并且几乎没有意义全部使用它们),所有这些依赖项都是marked as optional,这意味着您必须在 pom.xml 中引用依赖项。以下是引用最新稳定版hibernate核心的方法:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.7.Final</version>
</dependency>

【讨论】:

  • 这就是全部,如此简单,尽管有 Spring 和其他关于 Java 6 EE 的行动,但我没有听说我必须包含 Hibernate 的依赖项......我首先尝试了 iBATIS,然后我'我现在正在尝试 Hibernate,我无法忍受这么多的混乱,这么多的版本和 xml 文件以及配置同一事物的不同方式……我知道这非常强大,但一开始就一团糟。我的意思是,我不知道我是否在做正确的事情来学习 Java 框架......你做了什么?
【解决方案2】:

您遇到的异常 (java.lang.NoClassDefFoundError) 意味着您忘记在应用程序中包含库 jar。尝试深入分析日志跟踪,并找到丢失的类以包含正确的 jar。可能你错过了hibernate依赖。

【讨论】:

  • 我在 pom.xml 中设置了依赖项:junit、mysql 和 org.springframweork。剩下哪个?
  • 缺少休眠。要使用 Hibernate,您需要 Hibernate。
猜你喜欢
  • 2013-06-11
  • 1970-01-01
  • 1970-01-01
  • 2013-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 1970-01-01
相关资源
最近更新 更多