繁体   English   中英

Spring 3.1.1和缓存配置问题

[英]Spring 3.1.1 and Cache configuration issue

我正在测试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

但是,调用网址会发生这种情况:

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都在类路径中。

有什么线索吗?

谢谢,
安德里亚

仔细检查org.springframework.context-3.1.1.RELEASE.jar确实在类路径中。 Eclipse验证和错误都指向此问题。

更新:我已经检查过了,你是对的。 ConcurrentCacheFactoryBean似乎由于3.1.0.M1被除去,并通过可能是替换ConcurrentMapCacheFactoryBean在同一封装中。 我还无法在发行说明中找到任何证据。 但是,如果将高速缓存的Bean类名称更改为ConcurrentMapCacheFactoryBean ,它似乎可以正常工作。

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

UPDATE2:是的,确实ConcurrentCacheFactoryBean重命名ConcurrentMapCacheFactoryBean 他们只是没有去更新本教程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM