Убедитесь, что ваш ehcache.xml находится в вашем classpath (корневой элемент, а не в подпакете)
если вы используете структуру проекта maven, поместите ее в / src / main / resources dir.
Что код, который работает для меня:
CacheManager cm = CacheManager.getInstance();
if (cm != null)
{
Set<String> cacheNames = new HashSet<String>(Arrays.asList(cm.getCacheNames()));
LOG.debug("cacheNames: " + cacheNames);
for(String cName: cacheNames)
{
LOG.debug("Cache: "+cm.getEhcache(cName));
}
}
ПРИМЕЧАНИЕ: я использую метод "getEhcache" вместо "getCache"
Также проверьте вашу конфигурацию ehcache.xml, возможно, вам не хватает элемента defaultCache, вот пример:
<?xml version="1.0" encoding="UTF-8"?>
<ehcache maxBytesLocalHeap="1024m">
<sizeOfPolicy maxDepth="2000" />
<defaultCache eternal="false" timeToLiveSeconds="600"/>
<cache name="myCacheablePOJO" eternal="true" statistics="true">
<searchable>
<searchAttribute name="field1" />
<searchAttribute name="field2" />
<searchAttribute name="field3" />
</searchable>
</cache>
</ehcache>