2017-10-29 4 views
0

私のアプリケーションで使用するEhcacheを作成しようとしています。永続リソースが見つかりませんサービス::私はこの構成ではEhcacheのを作成することができますどのようにディスクEhCacheでの例外

それは例外

java.lang.IllegalStateExceptionを投げていますか?私は何かがディスク設定と間違っていると思う。

 private ResourcePools resourcePools() { 
     MemoryUnit memoryUnit = MemoryUnit.MB; 
     ResourcePoolsBuilder builder = ResourcePoolsBuilder.newResourcePoolsBuilder(); 

     return builder.disk(diskSize, memoryUnit, true).heap(heapSize, memoryUnit).build(); 

     } 

    @Bean 
    public CacheManager getCacheManager(){ 
     CacheManager cacheManager = newCacheManagerBuilder() 
       .withCache("symbolCache", 
       newCacheConfigurationBuilder(String.class, Long.class, resourcePools())) 
      .build(true); 


     return cacheManager; 
    } 

    @Bean 
    public Cache getCache(){ 
     Cache<String,Long> symbolCache = getCacheManager().getCache("symbolCache", String.class, Long.class); 
     return symbolCache; 
    } 

答えて

0

これは私が探しているもので、ディスクの場所を指定する必要があります。この設定はdiskを指定する場合に適しています。そうしないと、ディスクなしで自分のコードを使用できます。

PersistentCacheManager persistentCacheManager = CacheManagerBuilder.newCacheManagerBuilder() 
    .with(CacheManagerBuilder.persistence(new File(getStoragePath(), "myData"))) 
    .withCache("threeTieredCache", 
     CacheConfigurationBuilder.newCacheConfigurationBuilder(Long.class, String.class, 
      ResourcePoolsBuilder.newResourcePoolsBuilder() 
       .heap(10, EntryUnit.ENTRIES) 
       .offheap(1, MemoryUnit.MB) 
       .disk(20, MemoryUnit.MB, true) 
      ) 
    ).build(true); 

Cache<Long, String> threeTieredCache = persistentCacheManager.getCache("threeTieredCache", Long.class, String.class); 
threeTieredCache.put(1L, "stillAvailableAfterRestart"); 

persistentCacheManager.close(); 
+0

実際にディスクストレージを使用するには、ディスクの永続性を指定する必要があります – Henri

関連する問題