8

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 が見つからないというメッセージが表示されるためです。

エラーは次のとおりです。

この行に複数の注釈が見つかりました: class 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 は両方ともクラスパスにあります。

どんな手掛かり?

ありがとう、
アンドレア

4

1 に答える 1

20

org.springframework.context-3.1.1.RELEASE.jar が実際にクラスパスにあることを再確認します。Eclipse の検証とエラーの両方がこの問題を指摘しています。

更新: 私はチェックしました、そしてあなたは正しいです。ConcurrentCacheFactoryBean3.1.0.M1 から削除されたようConcurrentMapCacheFactoryBeanで、同じパッケージ内で置き換えられる可能性があります。リリースノートではまだ証拠を見つけることができませんでした。ただし、キャッシュの Bean クラス名を に変更するとConcurrentMapCacheFactoryBean、正常に動作するように見えます。

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

UPDATE2: はい、確かConcurrentCacheFactoryBeanに に名前が変更されましたConcurrentMapCacheFactoryBean彼らはチュートリアルを更新することができませんでした。

于 2012-06-11T11:07:13.877 に答える