Cannot find class [org.springframework.orm.hibernate5.LocalSessionFactoryBean] for bean with name 'hibernate5AnnotatedSessionFactory'

18,487

Solution 1

Your Spring version is 4.1.7.RELEASE which does not support hibernate 5.Hibernate 5 is supported in 4.2.x plus version of Spring so, change the version of Spring to latest i.e 4.3.2.RELEASE which supports hibernate 5.

Solution 2

In my case adding dependency for spring-orm helped. You can download it here: https://mvnrepository.com/artifact/org.springframework/spring-orm

Share:
18,487
CMJ
Author by

CMJ

Updated on June 08, 2022

Comments

  • CMJ
    CMJ almost 2 years

    Please help me I am a beginner in Maven project I try to connect to my MySQL database with hibernate but I have this error. If anyone could help me it will be friendly!

    org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate5.LocalSessionFactoryBean] for bean with name 'hibernate5AnnotatedSessionFactory' defined in ServletContext resource [/WEB-INF/spring-database.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate5.LocalSessionFactoryBean
        at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1328)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:622)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:591)
        at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1397)
        at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:968)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:735)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:434)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4939)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5434)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
        at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.ClassNotFoundException: org.springframework.orm.hibernate5.LocalSessionFactoryBean
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1702)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1547)
        at org.springframework.util.ClassUtils.forName(ClassUtils.java:249)
        at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:395)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1349)
        at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1320)
        ... 19 more
    

    This is my spring-database.xml for hibernate

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
    
        <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
            <property name="driverClassName" value="com.mysql.jdbc.Driver" />
            <property name="url" value="jdbc:mysql://localhost:3306/church" />
            <property name="username" value="root" />
            <property name="password" value="carthy-2" />
        </bean>
    
    
        <!-- Hibernate 4 SessionFactory Bean definition -->
        <bean id="hibernate5AnnotatedSessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
            <property name="dataSource" ref="dataSource" />
            <property name="annotatedClasses">
                <list>
                    <value>com.church.metier.User</value>
                </list>
            </property>
            <property name="hibernateProperties">
                <props>
                    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                    <prop key="hibernate.current_session_context_class">thread</prop>
                    <prop key="hibernate.show_sql">true</prop>
                    <prop key="hibernate.hbm2ddl.auto">create</prop>
                </props>
            </property>
        </bean>
    
    
        <bean id="HibernateUtil" class="com.church.util.HibernateUtil">
            <property name="sessionFactory" ref="hibernate5AnnotatedSessionFactory" />
        </bean>
    </beans>
    

    my web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns="http://java.sun.com/xml/ns/javaee"
        xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
        version="3.0">
    
        <display-name>Archetype Created Web Application</display-name>
    
        <servlet>
            <servlet-name>webmvc-dispatcher</servlet-name>
            <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
    
        <servlet-mapping>
            <servlet-name>webmvc-dispatcher</servlet-name>
            <url-pattern>/</url-pattern>
        </servlet-mapping>
    
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/webmvc-dispatcher-servlet.xml</param-value>
        </context-param>
    
        <listener>
            <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
        </listener>
    
        <error-page>
            <error-code>500</error-code>
            <location>/WEB-INF/views/errors/error500.jsp</location>
        </error-page>
    
        <error-page>
            <error-code>404</error-code>
            <location>/WEB-INF/views/errors/error404.jsp</location>
        </error-page>
    
        <context-param>
            <param-name>contextConfigLocation</param-name>
            <param-value> /WEB-INF/spring-database.xml</param-value>
        </context-param>
    </web-app>
    

    my webmvc-dispatcher-servlet

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:context="http://www.springframework.org/schema/context"
        xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
    
    
    
        <bean id="messageSource"
            class="org.springframework.context.support.ResourceBundleMessageSource">
            <property name="basename" value="META-INF/messages/messages" />
        </bean>
    
    
        <bean id="localeResolver"
            class="org.springframework.web.servlet.i18n.SessionLocaleResolver">
            <property name="defaultLocale" value="fr" />
        </bean>
    
        <mvc:interceptors>
            <bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor">
                <property name="paramName" value="lang" />
            </bean>
        </mvc:interceptors>
    
        <context:component-scan base-package="com.church.controller" />
    
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    
            <property name="prefix">
                <value>/WEB-INF/views/</value>
            </property>
    
            <property name="suffix">
                <value>.jsp</value>
            </property>
        </bean>
    
    
        <mvc:resources mapping="/resources/**" location="/resources/" />
    
    
    
    </beans>
    

    and my pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>com.agnc</groupId>
        <artifactId>church</artifactId>
        <packaging>war</packaging>
        <version>0.0.1-SNAPSHOT</version>
        <name>church Maven Webapp</name>
        <url>http://maven.apache.org</url>
        <properties>
            <org.springframework.version>4.1.7.RELEASE</org.springframework.version>
        </properties>
    
    
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.1</version>
                <scope>test</scope>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${org.springframework.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>${org.springframework.version}</version>
            </dependency>
    
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>${org.springframework.version}</version>
            </dependency>
    
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>2.5</version>
                <scope>compile</scope>
            </dependency>
    
            <dependency>
                <groupId>javax.mail</groupId>
                <artifactId>javax.mail-api</artifactId>
                <version>1.5.1</version>
            </dependency>
    
            <dependency>
                <groupId>com.sun.mail</groupId>
                <artifactId>javax.mail</artifactId>
                <version>1.5.2</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/jstl/jstl -->
            <dependency>
                <groupId>jstl</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
    
            <!-- HIBERNATE -->
            <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-entitymanager</artifactId>
                <version>5.2.2.Final</version>
            </dependency>
    
    
            <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-validator -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-validator</artifactId>
                <version>5.2.2.Final</version>
            </dependency>
    
    
            <!-- https://mvnrepository.com/artifact/org.hibernate.common/hibernate-commons-annotations -->
            <dependency>
                <groupId>org.hibernate.common</groupId>
                <artifactId>hibernate-commons-annotations</artifactId>
                <version>5.0.0.Final</version>
            </dependency>
    
    
    
            <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
            <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>5.2.2.Final</version>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.6.2</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>1.6.2</version>
            </dependency>
            <!-- https://mvnrepository.com/artifact/commons-dbcp/commons-dbcp -->
            <dependency>
                <groupId>commons-dbcp</groupId>
                <artifactId>commons-dbcp</artifactId>
                <version>1.4</version>
            </dependency>
    
            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jta_1.1_spec</artifactId>
                <version>1.1.1</version>
                <scope>compile</scope>
            </dependency>
    
    
            <!-- MYSQL Connector -->
            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.39</version>
            </dependency>
    
    
    
        </dependencies>
        <build>
            <finalName>church</finalName>
        </build>
    </project>
    

    thanks for your answers

  • CMJ
    CMJ over 7 years
    Hello thanks for your answers I changed the version of spring, but it does not work , I posted the project in my github this the link:github.com/CaptainJava1991/church/blob/master/church.zi‌​p can you see and tell me where is the problem please
  • Md Zahid Raza
    Md Zahid Raza over 7 years
    I deployed your project successfully. No error in deployment. Where are you getting the problem?
  • CMJ
    CMJ over 7 years
    org.springframework.beans.factory.CannotLoadBeanClassExcepti‌​on: Cannot find class [org.springframework.orm.hibernate5.LocalSessionFactoryBean] for bean with name 'hibernate5AnnotatedSessionFactory' defined in ServletContext resource [/WEB-INF/spring-database.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate5.LocalSessionFactoryBean
  • Md Zahid Raza
    Md Zahid Raza over 7 years
    clean and build and then run. In dependency make sure that version of Spring is 4.3.2. I ran your project in eclipse only and it does not give any error in deployment
  • CMJ
    CMJ over 7 years
    Still the same problem when i clean build then run. Maybe is a maven mistake ? Should i clean m2 repository ?
  • Md Zahid Raza
    Md Zahid Raza over 7 years
    you have checked the version of Spring jar file. is It 4.3.2? Will you please post snapshot of jar dependencies
  • CMJ
    CMJ over 7 years
    yes this is 4.3.2 like in screenshot zupimages.net/viewer.php?id=16/35/xn9y.jpg
  • Md Zahid Raza
    Md Zahid Raza over 7 years
    ClassNotFoundException is related improper inclusion of jar files. In below 4.2 Hibernate 5 was't supported so, that seemed to be the cause but 4.2.+ version supports hibernate 5 and problem should have been gone. In my system, I don't see any problem like that. Alternatively you can opt for java configuration.refer to this link for java configuration
  • CMJ
    CMJ over 7 years
    Where I should specify the HibernateConfiguration.java file in the web.xml or in the webmvc-dispacher-servlet because I have a exception "org.hibernate.HibernateException: /hibernate.cfg.xml not found" and in the example there is not web.xml or webmvc-dipacher-servlet please help me
  • Alex R
    Alex R about 5 years
    same error but for me it was missing spring-orm dependency