Search code examples
ehcacheehcache-3

Ehcache 3.x configure key/value type error


I integrated SpringFramwork with Ehcache 3.x, and got exception when specified the key/value types in ehcache.xml. This is my configuration:

<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.ehcache.org/v3" xmlns:jsr107="http://www.ehcache.org/v3/jsr107"
xsi:schemaLocation="http://www.ehcache.org/v3 http://www.ehcache.org/schema/ehcache-core-3.0.xsd http://www.ehcache.org/v3/jsr107 http://www.ehcache.org/schema/ehcache-107-ext-3.0.xsd">

<persistence directory="${user.home}/.ehcache" />
<cache alias="mycache">
    <key-type>java.lang.String</key-type>
    <value-type>java.lang.String</value-type>
    <resources>
        <offheap unit="GB">1</offheap>
        <heap unit="MB">300</heap>
        <disk unit="GB" persistent="true">10</disk>
    </resources>
</cache>

and I get exception:Cache [XXX] specifies key/value types. Use getCache(String, Class, Class). Here is the stacktrack:

Caused by: java.lang.IllegalArgumentException: Cache [homeFeeds] specifies key/value types. Use getCache(String, Class, Class)
at org.ehcache.jsr107.Eh107CacheManager.getCache(Eh107CacheManager.java:297)
at org.springframework.cache.jcache.JCacheCacheManager.loadCaches(JCacheCacheManager.java:105)
at org.springframework.cache.support.AbstractCacheManager.initializeCaches(AbstractCacheManager.java:61)
at org.springframework.cache.support.AbstractCacheManager.afterPropertiesSet(AbstractCacheManager.java:50)
at org.springframework.cache.jcache.JCacheCacheManager.afterPropertiesSet(JCacheCacheManager.java:97)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1687)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1624)
... 35 more

Something wrong with my configuration?


Solution

  • I recommend you read my answer on this other question, that was very similar to yours, if not the same