'java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean on switch to Spring 5.x from 4.1.3

We were previously using Spring 4.1.3 and have switched to Spring 5.x (e.g. 5.2.0).

Our Hibernate was always the same, 4.3.8.

But after the Spring 4->5 switch, we started getting this on startup:

ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean

Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate4.LocalSessionFactoryBean
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1291)
    at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1119)

Hibernate has always been 4.3.8 and hasn't changed, so what could be causing this error?

We are including the new spring-orm (5.x) as part of the Spring version switch. This hasn't changed either, other than the new Spring version.

<properties>
    <log4j.version>2.17.2</log4j.version>
    <java.version>11</java.version>
    <finalName>mrs</finalName>
    <spring.version>5.2.0.RELEASE</spring.version>
    <hibernate.version>4.3.8.Final</hibernate.version>
</properties>
..
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>${spring.version}</version>
    </dependency>

It looks like Spring 5 no longer includes this class, necessitating a switch to Hibernate 5.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source