【问题标题】:Hibernate Transaction Manager Issue休眠事务管理器问题
【发布时间】:2017-05-09 22:23:43
【问题描述】:

我是 Hibernate 的新手,正在尝试运行一个 java/spring 示例,该示例从 MS SqlServer 中的表中检索数据。每次我尝试运行程序时,数据源都可以正常加载。但是当 spring 尝试加载 session facotry 时,会出现以下错误:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: 
    Error creating bean with name 'sessionFactory' 
        defined in class path resource [ml/spring/src/applicationContext.xml]: 
Instantiation of bean failed; nested exception is
    java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
    Caused by: java.lang.NoClassDefFoundError: javax/transaction/TransactionManager

下面是我正在使用的应用上下文文件:

<!-- Data source bean -->
<bean id="dataSource" 
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"  >
    <property name="driverClassName">
        <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value></property>
    <property name="url">
        <value>jdbc:microsoft:sqlserver://machine:port</value></property>
    <property name="username"><value>user</value></property>
    <property name="password"><value>password</value></property>
</bean>

<!--  Session Factory Bean -->
<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource"><ref local="dataSource"/></property>
    <property name="mappingResources">
    <list>
        <value>authors.hbm.xml</value>
    </list>
    </property>
    <property name="hibernateProperties">
        <value>
            hibernate.dialect=net.sf.hibernate.dialect.SQLServerDialect
        </value>
    </property> 
</bean>

<bean id="txManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

【问题讨论】:

  • 我一直在研究类似的问题。如果我能解决我的问题,我会发布,但我和你一样,对休眠不太了解。
  • 只是一个评论 - 您可以通过将 bar 甚至 p:foo="bar" 如果你使用 spring 支持的 'p' 命名空间。

标签: java hibernate


【解决方案1】:

您缺少一个包含 JTA API 类的 JAR 文件。当您下载 Hibernate 时,您可能已经拥有一个。它应该被称为:

jta-1.1.jar

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    如果您使用的是 maven,请使用 this

    <dependency>
        <groupId>javax.transaction</groupId>
        <artifactId>jta</artifactId>
        <version>1.1</version>
    </dependency>
    

    【讨论】:

      猜你喜欢
      • 2011-11-16
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 2017-02-07
      • 2015-09-13
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      相关资源
      最近更新 更多