简体   繁体   中英

Spring boot Error creating bean with name Error

My project work correctly on a PC in LAN, but when I copy it to my Computer it doesn't work. the error

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'blowDownFilterController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.dem.cit.chemi.dao.ChemiSectionDao com.dem.cit.chemi.controller.BlowDownFilterController.chemiSectionDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ChemiSectionDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mainEntityManagerFactory' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.1.6.RELEASE.jar:4.1.6.RELEASE]
...
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.dem.cit.chemi.dao.ChemiSectionDao com.dem.cit.chemi.controller.BlowDownFilterController.chemiSectionDao; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ChemiSectionDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mainEntityManagerFactory' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'ChemiSectionDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mainEntityManagerFactory' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessPropertyValues(PersistenceAnnotationBeanPostProcessor.java:357) ~[spring-orm-4.1.6.RELEASE.jar:4.1.6.RELEASE]
...
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mainEntityManagerFactory' defined in ServletContext resource [/WEB-INF/mvc-dispatcher-servlet.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
...
Caused by: java.lang.NoClassDefFoundError: org/hibernate/annotations/common/reflection/ReflectionManager
...
Caused by: java.lang.ClassNotFoundException: org.hibernate.annotations.common.reflection.ReflectionManager
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1358) ~[catalina.jar:8.5.54]
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1180) ~[catalina.jar:8.5.54]
... 99 common frames omitted

and pom

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.3.RELEASE</version>
    <relativePath/>
    <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-rest</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-ws</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context-support</artifactId>
        <version>${spring.version}</version>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.25</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.5</version>
    </dependency>
    <dependency>
        <groupId>jstl</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20141113</version>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-io</artifactId>
        <version>1.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>4.3.5.Final</version>
    </dependency>
    <dependency>
        <groupId>net.sf.jasperreports</groupId>
        <artifactId>jasperreports</artifactId>
        <version>3.7.6</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.6</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>com.lowagie</groupId>
        <artifactId>itext</artifactId>
        <version>2.1.7</version>
    </dependency>
    <dependency>
        <groupId>commons-digester</groupId>
        <artifactId>commons-digester</artifactId>
        <version>2.1</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>1.7.0</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.jackson</groupId>
        <artifactId>jackson-mapper-asl</artifactId>
        <version>1.9.13</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.6.2</version>
    </dependency>
    <dependency>
        <groupId>org.jboss.logging</groupId>
        <artifactId>jboss-logging</artifactId>
        <version>3.4.1.Final</version>
    </dependency>

</dependencies>

<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>http://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>

        <plugin>
            <groupId>com.samaxes.maven</groupId>
            <artifactId>minify-maven-plugin</artifactId>
            <version>1.7.6</version>
            <executions>
                <execution>
                    <id>default-minify</id>
                    <phase>package</phase><!-- When omitted defaults to 'process-resources' -->
                    <configuration>
                        <charset>UTF-8</charset>

                        <cssSourceDir>resources/css/web</cssSourceDir>
                        <cssSourceIncludes>
                            <cssSourceInclude>**</cssSourceInclude>
                        </cssSourceIncludes>

                        <jsSourceDir>resources/js</jsSourceDir>
                        <jsSourceIncludes>
                            <jsSourceInclude>**</jsSourceInclude>
                        </jsSourceIncludes>

                    </configuration>
                    <goals>
                        <goal>minify</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <!-- in order to use minify filed listed bellow -->
                <warSourceExcludes>**/*.css, **/*.js</warSourceExcludes>
            </configuration>
        </plugin>

    </plugins>
</build>

and mvc-dispathcher-servelet.xml

   <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:tx="http://www.springframework.org/schema/tx"
   xmlns:jpa="http://www.springframework.org/schema/data/jpa"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xmlns:p="http://www.springframework.org/schema/p"
   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/tx http://www.springframework.org/schema/tx/spring-tx.xsd
    http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa.xsd
    http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">

<context:component-scan base-package="com.dem.cit"/>

<mvc:resources mapping="/resources/**" location="/resources/" />

<mvc:resources mapping="/css/**" location="/resources/css/">
    <mvc:resource-chain resource-cache="true" auto-registration="true">
        <mvc:resolvers>
            <mvc:version-resolver>
                <mvc:content-version-strategy patterns="/**"/>
            </mvc:version-resolver>
        </mvc:resolvers>
    </mvc:resource-chain>
</mvc:resources>
<mvc:resources mapping="/js/**" location="/resources/js/">
    <mvc:resource-chain resource-cache="true" auto-registration="true">
        <mvc:resolvers>
            <mvc:version-resolver>
                <mvc:content-version-strategy patterns="/**"/>
            </mvc:version-resolver>
        </mvc:resolvers>
    </mvc:resource-chain>
</mvc:resources>

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

<jpa:repositories base-package="com.dem.cit.main.entity"/>

<bean id="mainEntityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="mainPersistenceUnit"/>
</bean>
<bean id="mainTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="mainEntityManagerFactory" />
</bean>

<tx:annotation-driven transaction-manager="mainTransactionManager"/>

<jpa:repositories base-package="com.dem.cit.report.entity"/>

<bean id="reportEntityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="reportPersistenceUnit"/>
</bean>

<bean id="reportTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="reportEntityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="reportTransactionManager"/>

<jpa:repositories base-package="com.dem.cit.exam.entity"/>

<bean id="examMainEntityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="examMainPersistenceUnit"/>
</bean>

<bean id="examMainTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="examMainEntityManagerFactory" />
</bean>

<tx:annotation-driven transaction-manager="examMainTransactionManager"/>

<jpa:repositories base-package="com.dem.cit.fuel.entity"/>

<bean id="fuelMainEntityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="fuelMainPersistenceUnit"/>
</bean>

<bean id="fuelMainTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="fuelMainEntityManagerFactory" />
</bean>

<tx:annotation-driven transaction-manager="fuelMainTransactionManager"/>

<jpa:repositories base-package="com.dem.cit.gate.entity"/>

<bean id="gateMainEntityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="gateMainPersistenceUnit"/>
</bean>

<bean id="gateMainTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="gateMainEntityManagerFactory" />
</bean>

<tx:annotation-driven transaction-manager="gateMainTransactionManager"/>

<jpa:repositories base-package="com.dem.cit.ticket.entity"/>

<bean id="ticketEntityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="ticketPersistenceUnit"/>
</bean>

<bean id="ticketTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="ticketEntityManagerFactory" />
</bean>

<tx:annotation-driven transaction-manager="ticketTransactionManager"/>

<jpa:repositories base-package="com.dem.cit.chemi.entity"/>

<bean id="chemiEntityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="chemiMainPersistenceUnit"/>
</bean>

<bean id="chemiTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="chemiEntityManagerFactory" />
</bean>

<tx:annotation-driven transaction-manager="chemiTransactionManager"/>

<jpa:repositories base-package="com.dem.cit.guard.entity"/>

<bean id="guardEntityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="securityGuardPersistenceUnit"/>
</bean>

<bean id="guardTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="guardEntityManagerFactory" />
</bean>

<tx:annotation-driven transaction-manager="guardTransactionManager"/>

<mvc:annotation-driven/>
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

and persist.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="mainPersistenceUnit">
    <class>com.dem.cit.main.entity.main.Config</class>
    <class>com.dem.cit.main.entity.main.Location</class>
    <class>com.dem.cit.main.entity.main.Logs</class>
    <class>com.dem.cit.main.entity.main.Permission</class>
    <class>com.dem.cit.main.entity.main.Role</class>
    <class>com.dem.cit.main.entity.main.RolePermission</class>
    <class>com.dem.cit.main.entity.main.RoleWidget</class>
    <class>com.dem.cit.main.entity.main.ShariaTime</class>
    <class>com.dem.cit.main.entity.main.SubSystem</class>
    <class>com.dem.cit.main.entity.main.Tab</class>
    <class>com.dem.cit.main.entity.main.TabPermission</class>
    <class>com.dem.cit.main.entity.main.User</class>
    <class>com.dem.cit.main.entity.main.User2</class>
    <class>com.dem.cit.main.entity.main.UserConfig</class>
    <class>com.dem.cit.main.entity.main.UserConfigDefault</class>
    <class>com.dem.cit.main.entity.main.UserNote</class>
    <class>com.dem.cit.main.entity.main.UserRole</class>
    <class>com.dem.cit.main.entity.main.UserSystemConfig</class>
    <class>com.dem.cit.main.entity.main.UserSystemConfigDefault</class>
    <class>com.dem.cit.main.entity.main.UserWidget</class>
    <class>com.dem.cit.main.entity.main.Widget</class>
    <class>com.dem.cit.main.entity.main.Zone</class>
    <properties>
        <property name="hibernate.connection.url" value="jdbc:mysql://....:3306/psc_main"/>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>

        <property name="hibernate.connection.username" value="admin"/>
        <property name="hibernate.connection.password" value="***"/>

        <property name="hibernate.show_sql" value="false"/>

        <property name="hibernate.c3p0.min_size" value="5"/>
        <property name="hibernate.c3p0.max_size" value="20"/>
        <property name="hibernate.c3p0.timeout" value="300"/>
        <property name="hibernate.c3p0.max_statements" value="50"/>
        <property name="hibernate.c3p0.idle_test_period" value="3000"/>
    </properties>
</persistence-unit>

<persistence-unit name="examMainPersistenceUnit">
    <class>com.dem.cit.exam.entity.DefaultQuestionOption</class>
    <class>com.dem.cit.exam.entity.DefaultQuestionOptionTitle</class>
    <class>com.dem.cit.exam.entity.DutyStatus</class>
    <class>com.dem.cit.exam.entity.Education</class>
    <class>com.dem.cit.exam.entity.Exam</class>
    <class>com.dem.cit.exam.entity.ExamGroup</class>
    <class>com.dem.cit.exam.entity.Examinee</class>
    <class>com.dem.cit.exam.entity.ExamineeGroup</class>
    <class>com.dem.cit.exam.entity.ExamineeStatus</class>
    <class>com.dem.cit.exam.entity.Gender</class>
    <class>com.dem.cit.exam.entity.Group</class>
    <class>com.dem.cit.exam.entity.Post</class>
    <class>com.dem.cit.exam.entity.Question</class>
    <class>com.dem.cit.exam.entity.QuestionAnswer</class>
    <class>com.dem.cit.exam.entity.QuestionOption</class>
    <class>com.dem.cit.exam.entity.QuestionType</class>
    <class>com.dem.cit.exam.entity.Result</class>
    <class>com.dem.cit.exam.entity.Score</class>
    <class>com.dem.cit.exam.entity.StatusType</class>
    <properties>
        <property name="hibernate.connection.url" value="jdbc:mysql://....:3306/psc_exam"/>
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>

        <property name="hibernate.connection.username" value="admin"/>
        <property name="hibernate.connection.password" value="***"/>

        <property name="hibernate.show_sql" value="false"/>

        <property name="hibernate.c3p0.min_size" value="5"/>
        <property name="hibernate.c3p0.max_size" value="20"/>
        <property name="hibernate.c3p0.timeout" value="300"/>
        <property name="hibernate.c3p0.max_statements" value="50"/>
        <property name="hibernate.c3p0.idle_test_period" value="3000"/>
    </properties>
</persistence-unit>
....
</persistence>

I think it 's my different mysql version and I change dependency version for mysql but there is may problem. the version of mysql is "mysql Ver 8.0.14" and I tested this dependancy

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.20</version>
</dependency>

This is probably happening because you exclusively have a dependency on Hibernate. Since Spring Boot also includes Hibernate dependency, conflict happens in the classpath, and JVM can not decide which dependency to use. NoClassDefFoundError is thrown by JVM when the same dependencies exist in the classpath. Try removing Hibernate from pom.xml

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM