Получение исключения class not found в EhCacheManager весной 4.2

#java #spring #ehcache

#java #весна #ehcache

Вопрос:

Не удалось устранить указанную ниже ошибку:

Не удается найти класс [org.springframework.cache.ehcache.EhCacheCacheManager]

Я использую Spring 4.2.4 и Ehcache 3.1.3.

Зависимости Maven:

 <dependency>
    <groupId>org.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>3.1.3</version>
</dependency>
  

Конфигурация компонентов:

 <bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager">
    <property name="cacheManager">
        <bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean">
            <property name="configLocation" value="/WEB-INF/ehcache.xml"/>
        </bean>
    </property>
</bean>
  

Не уверен, чего не хватает. Любая помощь будет оценена.

Комментарии:

1. Какой код вы используете, с которым у вас возникли проблемы?

Ответ №1:

Зависимость, которую вы упускаете, заключается в следующем:

 <groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.3.RELEASE</version>
  

И если вы когда-нибудь обнаружите, что ищете правильную зависимость, увидев a ClassNotFoundException , ваш первый пункт всегда должен быть таким:

Найти зависимость по имени класса

Комментарии:

1. Спасибо за вашу помощь, после изменений это сработало, но снова я нахожу другие проблемы, которые, как я предполагаю, связаны с версией ehcache 3.x, поскольку ehcachemanger не поддерживается весной

Ответ №2:

Хотя это не текущая проблема, вы столкнетесь с этим, как только исправите ее:

В настоящее время нет встроенной поддержки Ehcache 3 в Spring. Он доступен только через поддержку JCache.

Ehcache 3.x является кардинальным изменением по сравнению с Ehcache 2.x, и все пакеты, имена классов и форматы конфигурации изменились.

И, таким образом org.springframework.cache.ehcache.EhCacheCacheManager , он не будет работать с Ehcache 3.

Я рассказал об использовании Ehcache 3 внутри Spring, в котором подробно описаны различные возможности интеграции.

Комментарии:

1. Спасибо за информацию, я не знал об изменениях для 3.x

2. Если я хочу использовать ehcache без spring, есть ли какой-нибудь рабочий пример в java? Я попытался найти его, но нашел один пример кода, который находится на сайте поддержки ehache 3.x, но не нашел ни одного рабочего примера

3. Добавлена ссылка на презентацию, в которой я показываю, как использовать Ehcache 3.

4. Спасибо, что было полезно