我正在使用Ehcache 2.7版
的pom.xml
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache</artifactId>
<version>2.7.0</version>
</dependency>
上下文cache.xml
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:cache="http://www.springframework.org/schema/cache"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.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">
<!-- generic cache manager -->
<cache:annotation-driven />
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheCacheManager"
p:cacheManager-ref="ehcache"/>
<bean id="ehcache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
p:configLocation="classpath:ehcache.xml" p:shared="true" />
ehcache.xml中
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd" updateCheck="true"
monitoring="autodetect" dynamicConfig="true">
<defaultCache eternal="true" maxElementsInMemory="100" overflowToDisk="false" />
<cache name="AC" maxElementsInMemory="50000" eternal="true" overflowToDisk="false">
<persistence strategy="localRestartable" synchronousWrites="false" />
</cache>
</ehcache>
我收到以下异常
org.xml.sax.SAXException: null:9: Element <cache> does not allow nested <persistence> elements.
即使在http://ehcache.org/ehcache.xsd
<xs:element minOccurs="0" maxOccurs="1" ref="persistence"/>
我没有得到导致该问题的原因以及为什么SAX抱怨persistence
不被允许。我做错了什么?
答案 0 :(得分:7)
原来我在pom.xml中加载了hibernate ehcache,与ehcache 2.7.0冲突。我删除了依赖后,一切正常。另外4个小时值得花钱:(