Мы используем EhCacheManagerFactoryBean, который перестал работать после обновления версий Spring Framework с 4.1.6 до 4.3.27. Я получаю BeanCreationException при запуске приложения.
Я попытался переопределить зависимости springframework до 4.1.6, и это сработало. Так же работало на 4.2.5 и 4.2.8. Не работает для 4.3.27 и 4.3.5 (не пробовал другие версии 4.3.x).
Вот мои соответствующие зависимости pom
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.6.7</version>
</dependency>
Я мог бы выделить проблему, актуальную для spring-context, spring-aop и spring-context-support (понижен до 4.2.5 и оставлен на 4.3.27 - это сработало.)
определение bean-компонента кеширования - bean-компонент cacheManager используется как ссылка для определения других bean-компонентов,
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:util="http://www.springframework.org/schema/util" xmlns:context="http://www.springframework.org/schema/context" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd">
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean" p:shared="true" />
<bean id="abstractCache" class="<class that extends org.springframework.cache.ehcache.EhCacheFactoryBean>" p:cache-manager-ref="cacheManager" abstract="true" />
....
</beans>
Exception, не удается разрешить ссылку на bean-компонент cacheManager при установке свойства bean-компонента cacheManager; вложенное исключение - org.springframework.beans.factory.BeanCreationException: ошибка создания bean-компонента с именем 'cacheManager', определенным в файле
stacktrace, Вызвано: java .lang.IllegalStateException: Singleton экземпляр еще не инициализирован в org.springframework.util.Assert.state (Assert. java: 70) в org.springframework.beans.factory.config.AbstractFactoryBean.getSingletonInstance (AbstractFactoryBean. java: 180) в org.springframe .beans.factory.config.AbstractFactoryBean.access $ 200 (AbstractFactoryBean. java: 61) в org.springframework.beans.factory.config.AbstractFactoryBean $ EarlySingletonInvocationHandler.invoke (AbstractFactoryBean) 1026. * .sun. proxy. $ Proxy20.iterator (Неизвестный источник) по адресу org.springframework.cache.ehcache.EhCacheFactoryBean.afterPropertiesSet (EhCacheFactoryBean. java: 291) по адресу org.springframework.beans.wutoctor.supportactory.Abstractapekee (AutoCAD). *: 1677) в org.springframewor k.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean (AbstractAutowireCapableBeanFactory. java: 1615)
Благодарю за любую помощь. Спасибо.