簡體   English   中英

EhCache中的異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM