Spring 3.1.1 и проблема конфигурации Cache

Я тестирую кэш Spring, и это мой контекстный файл.

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:cache="http://www.springframework.org/schema/cache"
    xsi:schemaLocation=
    "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 cache-manager="simpleCacheManager"/>

    <bean id="simpleCacheManager" class="org.springframework.cache.support.SimpleCacheManager">
        <property name="caches">
            <set>
                <bean class="org.springframework.cache.concurrent.ConcurrentCacheFactoryBean">
                    <property name="name" value="alfresco"/>
                </bean> 
                <bean class="org.springframework.cache.concurrent.ConcurrentCacheFactoryBean">
                    <property name="name" value="alfresco_article"/>
                </bean> 
                <bean class="org.springframework.cache.concurrent.ConcurrentCacheFactoryBean">
                    <property name="name" value="alfresco_action"/>
                </bean>
            </set>
        </property>
    </bean>

Я добавил всю необходимую библиотеку, но я не могу проверить библиотеку, потому что Eclipse по-прежнему говорит мне, что AOPAlliance.jar и org.springframework.context-3.1.1.RELEASE.jar отсутствуют.

Ошибка:

В этой строке находится несколько аннотаций: класс org.springframework.cache.concurrent.ConcurrentCacheFactoryBean не найден.

Решено перейти на org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean

но, вызывая URL, это происходит:

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [configuration-context.xml]; nested exception is java.lang.NoClassDefFoundError: org/springframework/aop/config/AopNamespaceUtils
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

root cause

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [configuration-context.xml]; nested exception is java.lang.NoClassDefFoundError: org/springframework/aop/config/AopNamespaceUtils
    org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)

aop-alliance.jar и org.springframework.aop-3.1.1.RELEASE.jar находятся в пути к классам.

Любая подсказка?

Спасибо,
Andrea

Ответы на вопрос(1)

Решение Вопроса

что org.springframework.context-3.1.1.RELEASE.jar действительно находится в пути к классам. Обе проверки Eclipse и ошибка указывают на эту проблему.

ОБНОВЛЕНИЕ: Я проверил, и вы правы.ConcurrentCacheFactoryBean Кажется, был удален с 3.1.0.M1 и, возможно, замененConcurrentMapCacheFactoryBean в той же упаковке. Я еще не смог найти никаких доказательств в примечаниях к выпуску. Однако, если вы измените имя класса компонента для ваших кэшей наConcurrentMapCacheFactoryBeanКажется, это работает нормально.

<bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean">
    <property name="name" value="alfresco"/>
</bean> 

UPDATE2: Yes, indeed ConcurrentCacheFactoryBean has been переименованный вConcurrentMapCacheFactoryBean. Они просто не удосужились обновить учебник.

 11 июн. 2012 г., 13:25
@AndreaGirardi Я обновил свой ответ
 Andrea Girardi11 июн. 2012 г., 13:08
Дважды проверено :) Это так.
 11 июн. 2012 г., 14:48
AopNamespaceUtils должно быть в вашемspring-aop-3.1.1.RELEASE.jar - убедитесь, что вы включили его. Кроме того, это не имеет большого отношения к конфигурации кеша ;-)
 Andrea Girardi11 июн. 2012 г., 14:45
Да, это работает, но все еще исключение java.lang.ClassNotFoundException: org.springframework.aop.config.AopNamespaceUtils. Возможно ли, что что-то еще было изменено? Класс доступен на classpath
 Andrea Girardi11 июн. 2012 г., 14:52
Да, это. Только что проверил ... Я схожу с ума ...

Ваш ответ на вопрос