[英]Exception in EhCache
我正在嘗試創建一個在我的應用程序中使用的Ehcache。 它引發異常
java.lang.IllegalStateException:找不到可持久資源:磁盤的服務
如何使用此配置創建Ehcache? 我認為磁盤配置有問題。
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;
}
這就是我要尋找的,我必須指定磁盤的位置。 當我們指定磁盤時,此配置是合適的,否則您可以在沒有磁盤的情況下使用我的代碼。
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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.