#spring #caching
#spring #кэширование
Вопрос:
я пытаюсь использовать конфигурацию кэша spring 3.1 и пространства имен в соответствии с документом spring. я также загрузил последнюю версию jar с сайта spring, но все еще сталкиваюсь с этой проблемой, касающейся пространств имен
Unable to locate Spring NamespaceHandler for element 'cache:annotation-driven' of schema namespace 'http://www.springframework.org/
schema/cache’
конфигурационный файл spring
<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:cache="http://www.springframework.org/schema/cache"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-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/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd">
cache:annotation-driven />
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager" p:cache-manager-ref="ehcache"/>
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:config-location="classpath:ehcache.xml"/>
Комментарии:
1. Я предполагаю, что отсутствие
<
является ошибкой при вставке.
Ответ №1:
вам нужен spring-context-support.jar
и spring-context.jar
в пути к классу.
spring-context
имеет CacheNamespaceHandler
класс.
(обратите внимание, что spring теперь использует другую схему именования для своих jar, но context
и context support
в именах сохранены)
Комментарии:
1. @Bozho я добавил spring-context.jar но я не могу найти spring-cache. jar в загруженном исходном коде
2. @Bozho org.springframework.context.support-3.1.0.M1.jar уже обнаружена в моем проекте. должен ли я добавить pring-context-support-2.5.6.jar
3. @Bozho где я могу получить этот jar .. я не могу найти это
4. в разделе загрузки из zip: spring-framework-3.1.0.M1.zip
5. @Bozho извините, что беспокою вас снова и снова .. но добавление, но эти банки уже присутствовали .. : (и все еще не работает удаление кэша
Ответ №2:
Для пользователей Maven добавьте следующую зависимость:
<spring-version>3.1.0.RELEASE</spring-version>
<ehcache-version>2.4.2</ehcache-version>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</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>${ehcache-version}</version>
</dependency>