Hibernate Transaction Manager Проблема - PullRequest
4 голосов
/ 06 ноября 2008

Я новичок в Hibernate и пытаюсь запустить пример Java / Spring, который извлекает данные из таблицы в MS SqlServer. Каждый раз, когда я пытаюсь запустить программу, источник данных загружается нормально. Но когда spring пытается загрузить сессию, она получает следующую ошибку:

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>

Ответы [ 2 ]

14 голосов
/ 06 ноября 2008

Вам не хватает JAR-файла, содержащего классы JTA API. Возможно, у вас уже есть один, когда вы загрузили Hibernate. Это должно называться что-то вроде:

jta-1.1.jar

Надеюсь, это поможет.

0 голосов
/ 09 мая 2017

Если вы используете maven, используйте this ,

<dependency>
    <groupId>javax.transaction</groupId>
    <artifactId>jta</artifactId>
    <version>1.1</version>
</dependency>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...