Проблема с пространством имен кэша Spring 3.1

#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>