首页 > 解决方案 > 使用 grails3 的 ehcache3 插件的有效 ehcache.xml

问题描述

grails 3.3.1 版缓存-ehcache:3.0.0.M1

有人可以发给我一个有效的ehcache.xml吗?

我的文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="ehcache.xsd"
     updateCheck="true"
     monitoring="autodetect"
     dynamicConfig="true">

    <diskStore path="java.io.tmpdir"/>

    <cache name="sevenSeconds"
       maxEntriesLocalHeap="100"
       maxEntriesLocalDisk="1000"
       eternal="false"
       timeToLiveSeconds="7"
       timeToIdleSeconds="0"
       memoryStoreEvictionPolicy="LFU"
       transactionalMode="off">
       <persistence strategy="localTempSwap" />
    </cache>

    <defaultCache
        maxElementsInMemory="50000"
        eternal="false"
        timeToIdleSeconds="120"
        timeToLiveSeconds="120"
        overflowToDisk="true"
        diskPersistent="false"
        diskExpiryThreadIntervalSeconds="120"
        memoryStoreEvictionPolicy="LRU"
    />
</ehcache>

我在启动时收到此错误:

Caused by: org.ehcache.xml.exceptions.XmlConfigurationException: Error parsing XML configuration at file:/home/user/workspaces/api2-grails/grails-app/conf/ehcacheCustom.xml
Caused by: org.xml.sax.SAXParseException: cvc-elt.1.a: Cannot find the declaration of element 'ehcache'.

感谢您的建议

标签: grails3ehcache-3

解决方案


从 ehcache 3.0.0 开始,xml 格式发生了变化。这是我的基本版本:

<?xml version="1.0" encoding="UTF-8"?>       
<config
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns='http://www.ehcache.org/v3'
xsi:schemaLocation="ehcache-core.xsd">
    <persistence directory="java.io.tmpdir"/>
    <cache alias="twentySeconds">
        <expiry>
            <ttl unit="seconds">20</ttl>
        </expiry>
        <heap>2</heap>
    </cache>
</config>

推荐阅读