Migrate Hibernate 4.3 to 5 : TransactionManagerDelegate cannot be cast to TransactionManager

159 Views Asked by At

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 ?

0

There are 0 best solutions below