Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot find cache named '' for CacheableOperation[] caches

Tags:

My error is :

Exception in thread "main" java.lang.IllegalArgumentException: Cannot find cache named 'getActionsBycasId' for CacheableOperation[public java.util.List com.codinko.database.DataBaseConnection.getActionsByCasId(int)] caches=[getActionsBycasId] | key='' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless=''     at org.springframework.cache.interceptor.AbstractCacheResolver.resolveCaches(AbstractCacheResolver.java:81)     at org.springframework.cache.interceptor.CacheAspectSupport.getCaches(CacheAspectSupport.java:214)     at org.springframework.cache.interceptor.CacheAspectSupport$CacheOperationContext.<init>(CacheAspectSupport.java:553)     at org.springframework.cache.interceptor.CacheAspectSupport.getOperationContext(CacheAspectSupport.java:227)     at org.springframework.cache.interceptor.CacheAspectSupport$CacheOperationContexts.<init>(CacheAspectSupport.java:498)     at org.springframework.cache.interceptor.CacheAspectSupport.execute(CacheAspectSupport.java:299)     at org.springframework.cache.interceptor.CacheInterceptor.invoke(CacheInterceptor.java:61)     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)     at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653)     at com.codinko.database.DataBaseConnection$$EnhancerBySpringCGLIB$$21a0d8a.getActionsByCasId(<generated>)     at com.codinko.caching.EmployeeDAO.getActionBycasId(EmployeeDAO.java:47)     at com.codinko.caching.EmployeeDAO$$FastClassBySpringCGLIB$$191aa49b.invoke(<generated>)     at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)     at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:649)     at com.codinko.caching.EmployeeDAO$$EnhancerBySpringCGLIB$$3399d753.getActionBycasId(<generated>)     at com.codinko.caching.Main.main(Main.java:22)     

My function is :

@Cacheable("getActionsBycasId") public List<SMSAction> getActionsByCasId(int casId){     System.out.println("Inside getActionsByCasId");     //My logic     return list; }     

when i add below on ehcache.xml then above error not comes but can't know why this error come .

<cache name="getActionsBycasId" maxElementsInMemory="50" eternal="false"     overflowToDisk="false" memoryStoreEvictionPolicy="LFU" />     

Is this above configuration required in ehcache.xml file even though i used annotation ????

like image 770
Kamlesh Kanazariya Avatar asked Jan 19 '15 08:01

Kamlesh Kanazariya


2 Answers

Try this :

@Bean public CacheManager cacheManager() {     SimpleCacheManager cacheManager = new SimpleCacheManager();     List<Cache> caches = new ArrayList<Cache>();     caches.add(new ConcurrentMapCache("getActionsBycasId"));     cacheManager.setCaches(caches);     return cacheManager; } 
like image 141
Piotr 'Kowcio' Kowalski Avatar answered Sep 18 '22 23:09

Piotr 'Kowcio' Kowalski


If you use spring cloud aws, disable automatic elasticache configuration.

@EnableAutoConfiguration(exclude = ElastiCacheAutoConfiguration.class) @EnableCaching @SpringBootApplication public class Application {     public static void main(String[] args) {         SpringApplication.run(Application.class, args);     } } 
like image 25
serdar Avatar answered Sep 21 '22 23:09

serdar