迁移Hibernate 4.3至5:TransactionManagerDelegate无法投射到TransactionManager

发布于 2025-02-05 09:01:44 字数 4606 浏览 2 评论 0原文

我尝试将冬眠4.3项目迁移到5.x。

我有这些依赖性:

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>4.2.0.Final</version>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.0.11.Final</version>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
        <exclusion>
            <artifactId>jta</artifactId>
            <groupId>javax.transaction</groupId>
        </exclusion>
        <exclusion>
            <artifactId>jboss-transaction-api_1.2_spec</artifactId>
            <groupId>org.jboss.spec.javax.transaction</groupId>
        </exclusion>
        <exclusion>
            <artifactId>jboss-logging</artifactId>
            <groupId>org.jboss.logging</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <artifactId>jboss-logging</artifactId>
    <groupId>org.jboss.logging</groupId>
    <version>3.2.0.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>5.0.11.Final</version>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
    </exclusions>
</dependency>

我也有用于连接的弹簧4.2.9。

我替换:

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

通过:

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">

在我的DataSource.xml文件中,但是当服务器启动时,它加载了一点,然后有一个错误:

2022-06-08 16:24:31,335 ERROR [STDERR] java.lang.ClassCastException: com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate cannot be cast to javax.transaction.TransactionManager
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform.locateTransactionManager(JBossAppServerJtaPlatform.java:42)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.retrieveTransactionManager(AbstractJtaPlatform.java:87)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.getTransactionManager(AbstractJtaPlatform.java:98)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.TransactionManagerBasedSynchronizationStrategy.canRegisterSynchronization(TransactionManagerBasedSynchronizationStrategy.java:39)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.canRegisterSynchronization(AbstractJtaPlatform.java:131)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.pulse(JtaTransactionCoordinatorImpl.java:141)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.<init>(JtaTransactionCoordinatorImpl.java:92)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl.buildTransactionCoordinator(JtaTransactionCoordinatorBuilderImpl.java:28)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.internal.SessionImpl.<init>(SessionImpl.java:274)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.internal.SessionFactoryImpl$SessionBuilderImpl.openSession(SessionFactoryImpl.java:1332)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.internal.SessionFactoryImpl.openSession(SessionFactoryImpl.java:684)
2022-06-08 16:24:31,336 ERROR [STDERR]  at com.al6.jtob.data.dao.GenericHibernateDAO.getSession(GenericHibernateDAO.java:75)

如何调查此问题?

I try to migrate my hibernate 4.3 project to 5.X.

I have theses dependencies :

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>4.2.0.Final</version>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>5.0.11.Final</version>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
        <exclusion>
            <artifactId>jta</artifactId>
            <groupId>javax.transaction</groupId>
        </exclusion>
        <exclusion>
            <artifactId>jboss-transaction-api_1.2_spec</artifactId>
            <groupId>org.jboss.spec.javax.transaction</groupId>
        </exclusion>
        <exclusion>
            <artifactId>jboss-logging</artifactId>
            <groupId>org.jboss.logging</groupId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <artifactId>jboss-logging</artifactId>
    <groupId>org.jboss.logging</groupId>
    <version>3.2.0.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-c3p0</artifactId>
    <version>5.0.11.Final</version>
    <exclusions>
        <exclusion>
            <artifactId>slf4j-api</artifactId>
            <groupId>org.slf4j</groupId>
        </exclusion>
    </exclusions>
</dependency>

I also have spring-orm 4.2.9 used for connection.

I replace :

<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">

By :

<bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">

In my datasource.xml files, but when the server start, it load a little and then I have this error :

2022-06-08 16:24:31,335 ERROR [STDERR] java.lang.ClassCastException: com.arjuna.ats.jbossatx.jta.TransactionManagerDelegate cannot be cast to javax.transaction.TransactionManager
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.JBossAppServerJtaPlatform.locateTransactionManager(JBossAppServerJtaPlatform.java:42)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.retrieveTransactionManager(AbstractJtaPlatform.java:87)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.getTransactionManager(AbstractJtaPlatform.java:98)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.TransactionManagerBasedSynchronizationStrategy.canRegisterSynchronization(TransactionManagerBasedSynchronizationStrategy.java:39)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.engine.transaction.jta.platform.internal.AbstractJtaPlatform.canRegisterSynchronization(AbstractJtaPlatform.java:131)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.pulse(JtaTransactionCoordinatorImpl.java:141)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorImpl.<init>(JtaTransactionCoordinatorImpl.java:92)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.resource.transaction.backend.jta.internal.JtaTransactionCoordinatorBuilderImpl.buildTransactionCoordinator(JtaTransactionCoordinatorBuilderImpl.java:28)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.internal.SessionImpl.<init>(SessionImpl.java:274)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.internal.SessionFactoryImpl$SessionBuilderImpl.openSession(SessionFactoryImpl.java:1332)
2022-06-08 16:24:31,336 ERROR [STDERR]  at org.hibernate.internal.SessionFactoryImpl.openSession(SessionFactoryImpl.java:684)
2022-06-08 16:24:31,336 ERROR [STDERR]  at com.al6.jtob.data.dao.GenericHibernateDAO.getSession(GenericHibernateDAO.java:75)

How can I investigate this ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文