2

spring 3.0でキャッシュを実装しようとしています

統合に関連するコードは次のとおりです。

<bean id="cacheManager" class="net.sf.ehcache.CacheManager">
    <constructor-arg index="0" type="java.net.URL" value="classpath:ehcache.xml"/>
</bean>

application-context.xml ファイル内

有効な ehcache.xml ファイルがありますが、そこに到達する前にアプリケーションが爆撃するため、読み取られません。受け取ったエラーは次のとおりです。

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [net.sf.ehcache.CacheManager] for bean with name 'cacheManager' defined in ServletContext resource [/WEB-INF/spring/application-context.xml]; nested exception is java.lang.ClassNotFoundException: net.sf.ehcache.CacheManager
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1208)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:568)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1277)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:302)
at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:185)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.findAutowireCandidates(DefaultListableBeanFactory.java:805)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:762)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:680)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:556)
... 30 more
Caused by: java.lang.ClassNotFoundException: net.sf.ehcache.CacheManager
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:408)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1229)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1200)

誰かが私が間違っていることを知っていますか?

4

3 に答える 3

0

プロジェクトを Eclipse から開始する場合は、ehcache ライブラリーが「デプロイメント・アセンブリー」リストに追加されているかどうかを確認してください。

プロジェクトのプロパティ ダイアログ -> [Deployment Assembly] を開き、そこに lib を追加します。

h番目

于 2012-01-18T08:08:33.637 に答える
0

ehcache jar を web-inf/lib ディレクトリに追加してください。

Maven を使用している場合は、これを pom.xml に追加します。

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>2.4.7</version>
</dependency>
于 2012-01-18T07:17:37.283 に答える
0

クラスパスに ehcache-core jar を追加する必要があるようです...ただし、正しいバージョンを追加することに注意してください。

編集:

ehcacheで使用されていることに注意してartifactIdくださいehcache-core

<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>1.6.1</version>
</dependency>

mvn install を再度実行した後、適切な jar がローカル リポジトリに存在し、適切なクラスが含まれていることを確認します。

于 2012-01-18T07:07:20.170 に答える