ClassNotFoundException: org.springframework.orm.hibernate5.LocalSessionFactoryBean

Я использую интеграцию spring 5 и hibernate5. Запустив мое приложение, я получаю эту ошибку:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'customerController': Unsatisfied dependency expressed through field 'customerDAO'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.orm.hibernate5.LocalSessionFactoryBean] for bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/spring.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.orm.hibernate5.LocalSessionFactoryBean
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:598)
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:90)

Мой файл pom.xml:

  <?xml version = "1.0" encoding = "UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>Spring_Hibernate</groupId>
    <artifactId>Spring_Hibernate</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <spring.version>5.1.0.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>5.1.0.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${spring.version}</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.5.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/javax.servlet/servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.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>


        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>5.4.1.Final</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>5.4.1.Final</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-orm -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>5.1.4.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>6.0.2.Final</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate.validator</groupId>
            <artifactId>hibernate-validator-annotation-processor</artifactId>
            <version>6.0.2.Final</version>
        </dependency>

        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator-cdi</artifactId>
            <version>6.0.15.Final</version>
        </dependency>

        <dependency>
            <groupId>javax.el</groupId>
            <artifactId>el-api</artifactId>
            <version>2.2.1-b04</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/org.jboss.logging/jboss-logging -->
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>3.3.2.Final</version>
        </dependency>


        <!-- https://mvnrepository.com/artifact/com.fasterxml/classmate -->
        <dependency>
            <groupId>com.fasterxml</groupId>
            <artifactId>classmate</artifactId>
            <version>1.3.1</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>6.0.6</version>
        </dependency>

    </dependencies>
</project>

Мой файл Spring.xml:

 **<?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:context = "http://www.springframework.org/schema/context"
           xmlns:mvc = "http://www.springframework.org/schema/mvc" xmlns:beans = "http://www.springframework.org/schema/util"
           xsi:schemaLocation = "http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.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.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

        <!-- Step 3: Add support for component scanning -->
        <context:component-scan base-package = "com_spring_hibernate.controller, com_spring_hibernate.dao, com_spring_hibernate.entity" />

        <!-- Step 4: Add support for conversion, formatting and validation support -->
        <mvc:annotation-driven/>


        <bean class = "org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name = "prefix" value = "/WEB-INF/view/" />
            <property name = "suffix" value = ".jsp" />
        </bean>

        <context:property-placeholder location = "classpath:properties/database.properties"/>

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


        <!--define datasource, define factory which includes data source-->

        <bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource" destroy-method = "close">
            <property name = "driverClassName" value = "${jdbc.driverClassName}"/>
            <property name = "url" value = "${jdbc.url}"/>
            <property name = "username" value = "${jdbc.username}"/>
            <property name = "password" value = "${jdbc.password}"/>
        </bean>
    </beans>

Также мой проект включает в себя: классы контроллера, dao/daoImp, entity и util.

Я проверил некоторые знакомые сообщения, которые рекомендуют добавить зависимость от spring-orm (что я уже сделал, но это мне не помогает).

Кажется, у вас есть несколько версий Hibernate в вашем проекте, в файле spring.xml вы ссылаетесь на Hibernate 4 -> org.springframework.orm.hibernate4.LocalSessionFactoryBean

nullptr 27.03.2019 00:49

Обновил это до hibernate5, все еще есть та же ошибка

user236997 27.03.2019 01:04

Проверьте, нет ли у вас конфликтующих библиотек Hibernate (несколько версий)

nullptr 27.03.2019 01:05

Я добавил maven-enforcer-plugin в свой pom.xml, но после запуска моего приложения я не получаю никаких сообщений о неправильной совместимости.

user236997 27.03.2019 02:18

Попробуйте удалить все зависимости Hibernate из вашего pom.xml и добавить только Вот этот

nullptr 27.03.2019 02:26

На самом деле, я обнаружил, что ошибался насчет maven-enforcer-plugin. Он показывает множество ошибок, вот некоторые из них: [ОШИБКА] Ошибка сходимости зависимостей для org.jboss.logging:jboss-logging:3.3.2. Конечные пути к зависимости: +-Spring_Hibernate:Spring_Hibernate:1.0-SNAPSHOT +- org.hibernate:hibernate-core:5.4.1.Final +-org.jboss.logging:jboss-logging:3.3.2.Final и +-Spring_Hibernate:Spring_Hibernate:1.0-SNAPSHOT +-org.hibernate:hibernate-core: 5.4.1.Final +-org.hibernate.common:hibernate-commons-annotations:5.1.0.F‌​inal Но как их решить?

user236997 27.03.2019 02:28

Запустите следующую команду в своем проекте из командной строки: mvn dependency:tree -Dverbose и добавьте вывод к своему вопросу. Также попробуйте мое предложение удалить все библиотеки Hibernate и добавить ту, которую я отправил

nullptr 27.03.2019 02:34

Я удалил свои зависимости спящего режима, добавил ваши. Выполнить из подсказки: mvn dependency:tree -Dverbose Результат: УСПЕШНАЯ СТРОИТЕЛЬСТВО. Но «Running maven Build» сам по себе по-прежнему показывает те же ошибки; Вывод перед [INFO] BUILD SUCCESS слишком длинный, чтобы разместить его здесь в виде сообщения.

user236997 27.03.2019 02:41

Извините, я забыл указать, вы должны запустить эту команду в папке вашего проекта :)

nullptr 27.03.2019 02:42

Я запустил его внутри intellij IDEA «Execute Maven Goal» с рабочим каталогом, который следует за текущим проектом и командной строкой, которую вы отправили ранее. Это правильно?

user236997 27.03.2019 02:46

Вы должны получить результат, подобный примеру в документация.

nullptr 27.03.2019 02:47

Да, у меня такой вывод. Он заканчивается: [INFO] BUILD SUCCESS Я только что попытался снова запустить свой проект, и он не показывает никаких ошибок, хотя, если я пытаюсь «Запустить maven Build», он показывает «[INFO] BUILD FAILURE». Как это вообще возможно?

user236997 27.03.2019 02:51
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
13
1 163
0

Другие вопросы по теме