Проблема с конфигурацией xml базы данных spring после обновления до Hibernate 5 и Spring 5

Я обновил свое приложение с Java7 до Java8, с Spring 3.4 до Spring 5.1.4, с Hibernate 4.2.11 до 5.2.11.

Я проверил банки и обновил весенние банки (v5.1.4) и спящие банки (5.2.11).

Решенный POM

<properties>
    <spring.security.version>5.1.3.RELEASE</spring.security.version>
    <slf4j.version>1.7.25</slf4j.version>
    <dbcp.version>1.4</dbcp.version>
    <java-version>1.8</java-version>
    <jstl.version>1.2</jstl.version>
    <displaytag.version>1.2</displaytag.version>
    <hibernate.version>5.2.11.Final</hibernate.version>
    <logback.version>1.1.2</logback.version>
    <jspapi.version>2.1</jspapi.version>
    <servletapi.version>2.5</servletapi.version>
    <jackson.version>1.9.10</jackson.version>
    <mysql.connector.version>8.0.13</mysql.connector.version>
    <spring.version>5.1.4.RELEASE</spring.version>
</properties>

весна-база данных.xml

<?xml version = "1.0" encoding = "UTF-8"?>
<beans xmlns = "http://www.springframework.org/schema/beans"
xmlns:context = "http://www.springframework.org/schema/context"
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.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context.xsd">                          

<context:component-scan base-package = "com.s382.kris.*" />
<tx:annotation-driven />

<!-- Root Context: defines shared resources visible to all other web components -->
 <bean id = "dataSource" class = "org.apache.commons.dbcp.BasicDataSource"
    destroy-method = "close">
    <property name = "driverClassName" value = "com.mysql.cj.jdbc.Driver" />
    <property name = "url" value = "jdbc:mysql://localhost:3306/s382?zeroDateTimeBehavior=convertToNull" />
    <property name = "username" value = "admin" />
    <property name = "password" value = "admin" />
</bean>

<!-- Hibernate 5 XML SessionFactory Bean definition-->
<bean id = "sessionFactory" class = "org.springframework.orm.hibernate5.LocalSessionFactoryBean">
    <property name = "dataSource" ref = "dataSource" />        
    <property name = "mappingResources">
        <list>
            <value>orm/User.hbm.xml</value>
    <value>orm/UserRole.hbm.xml</value>

        </list>
    </property>
<property name = "hibernateProperties">
    <props>
        <prop key = "hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
        <prop key = "hibernate.format_sql">false</prop>
        <prop key = "hibernate.show_sql">false</prop>
        </props>
    </property>
</bean>             

<!-- MUST have transaction manager, using aop and aspects  -->
<bean id = "transactionManager" class = "org.springframework.orm.hibernate5.HibernateTransactionManager">
    <property name = "sessionFactory" ref = "sessionFactory"/>
</bean>
<tx:advice id = "txAdvice" transaction-manager = "transactionManager">
<tx:attributes>
    <tx:method name = "get*" read-only = "true" />
    <tx:method name = "find*" read-only = "true" />
    <tx:method name = "*" />
</tx:attributes>
</tx:advice> 

<aop:config>
    <aop:pointcut id = "allServices" expression = "execution(* com.s382.kris.service.*.*(..))" />
    <aop:advisor advice-ref = "txAdvice" pointcut-ref = "allServices" />
</aop:config>

'''

Трассировки стека

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'companyController' defined in file [/home/barkha/Documents/workspace-sts-3.9.7.RELEASE/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/s382/WEB-INF/classes/com/s382/kris/controller/CompanyController.class]: BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.config.internalTransactionAdvisor': Cannot resolve reference to bean 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0' while setting bean property 'transactionAttributeSource'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.transaction.annotation.AnnotationTransactionAttributeSource#0': BeanPostProcessor before instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.methodSecurityMetadataSourceAdvisor': Cannot resolve reference to bean 'org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource#0' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.access.method.DelegatingMethodSecurityMetadataSource#0': Cannot create inner bean '(inner bean)#348f470f' of type [org.springframework.security.access.prepost.PrePostAnnotationSecurityMetadataSource] while setting constructor argument with key [0]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#348f470f': Cannot create inner bean '(inner bean)#3de1ec44' of type [org.springframework.security.access.expression.method.ExpressionBasedAnnotationAttributeFactory] while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#3de1ec44': Cannot resolve reference to bean 'org.springframework.security.config.method.GlobalMethodSecurityBeanDefinitionParser$DefaultMethodSecurityExpressionHandlerBeanFactory#0$created#0' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.security.config.method.GlobalMethodSecurityBeanDefinitionParser$DefaultMethodSecurityExpressionHandlerBeanFactory#0': Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: ; nError creating bean with name 'sessionFactory': Lookup method resolution failedested exception is java.lang.IllegalStateException: Failed to introspect Class [org.springframework.orm.hibernate5.LocalSessionFactoryBean] from ClassLoader [ParallelWebappClassLoader

Приложение успешно строится, но выдает ошибку при запуске на tomcat9

Прошло 2 года, вы когда-нибудь находили решение, которое могли бы опубликовать в качестве ответа?

Chris 13.05.2021 21:52

Я уверен, что смог исправить это, но я едва могу вспомнить детали. Глядя на это сейчас, я думаю, что проблема была с файлом pom. Вы можете проверить свою иерархию зависимостей. У вас могут быть некоторые зависимости, включенные дважды с разными версиями на вашем пути, вам придется исключить более раннюю версию. Также проверьте банки, если есть несколько банок для одной и той же зависимости разных версий.

Bhavin Shah 14.05.2021 22:15
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
2
267
0

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