최근에 ehcache의 이전 구현을 버전 3.2로 전환 했으므로 다음 xml 구성 파일이 프로젝트에 있습니다.Echache 3.2.0 아니요 Store.Provider가 구성된 리소스 유형을 처리 할 수 없습니다. [offheap, disk] 예외
나는 공간의 비트를 절약 할 절단 유지하지만 분명히 오류가 표시 다음과 같은 예외 추적을 얻을 위 구성<eh:config xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
xmlns:eh='http://www.ehcache.org/v3'
xsi:schemaLocation="http://www.ehcache.org/v3
http://www.ehcache.org/schema/ehcache-core-3.0.xsd">
<eh:persistence directory="C:\foo\bar\Cache-Persistence"/>
<eh:thread-pools>
<eh:thread-pool alias="defaultDiskPool" min-size="1" max-size="3"/>
</eh:thread-pools>
<eh:disk-store thread-pool="defaultDiskPool"/>
<eh:cache-template name="PROC_REQTemplate">
<eh:key-type>java.lang.String</eh:key-type>
<eh:value-type>java.lang.String</eh:value-type>
<eh:expiry>
<eh:ttl>640</eh:ttl>
</eh:expiry>
<eh:resources>
<eh:offheap unit="MB">500</eh:offheap>
<eh:disk unit="GB" persistent="true">3</eh:disk>
</eh:resources>
<eh:disk-store-settings thread-pool="defaultDiskPool"/>
</eh:cache-template>
<eh:cache alias="proc_req_cache" uses-template="PROC_REQTemplate"/>
</eh:config>
는 :
java.lang.IllegalStateException: No Store.Provider found to handle configured resource types [offheap, disk] from {org.ehcache.impl.internal.store.heap.OnHeapStore$Provider, org.ehcache.impl.internal.store.tiering.TieredStore$Provider, org.ehcache.impl.internal.store.offheap.OffHeapStore$Provider, org.ehcache.impl.internal.store.disk.OffHeapDiskStore$Provider}
at org.ehcache.core.internal.store.StoreSupport.selectStoreProvider(StoreSupport.java:80) ~[?:?]
at org.ehcache.core.EhcacheManager.getStore(EhcacheManager.java:440) ~[?:?]
at org.ehcache.core.EhcacheManager.createNewEhcache(EhcacheManager.java:311) ~[?:?]
at org.ehcache.core.EhcacheManager.createCache(EhcacheManager.java:260) ~[?:?]
at org.ehcache.core.EhcacheManager.init(EhcacheManager.java:567) ~[?:?]
나는 당신이 할 수있는 현재의 3.2 설명서에 따라 생각 데이터 스토리지 계층의 모든 조합 사용 하지만 분명히이
- 이 난 단지 내가 자원 offheap 을-주석과 만 디스크를 떠날 경우 위의 hown 구성 작업을 할 수 있습니다 ... 위의 오류 shows.So 같은 경우가 아니라 둘 다 아닙니다. 이게 정상인가? 내가 뭘 놓치고 있니?
- 2.7.8 버전에 따라 문서 (여기 ehcache-2.8-storage-options 참조)는 BigHemap 저장소로 BigMemory를 언급했지만 ehcache-3.2.0.jar에서 올바르게 보았다면 거기에 어떤 종류의 내부지도가 있습니다. 위의 오류는 내가 BigMemory를 프로젝트에 포함시키지 않았다는 사실과 관련이있을 수 있습니까? 제 추측은 아니지만 누군가가 명확히 할 수 있다면 좋을까요?
모든 도움을 주시면 감사하겠습니다. 미리 감사드립니다.
@Henri의 도움에 감사 드리며 conf를 정리하는 시간을내어 주셔서 감사합니다. 너는 당연히 당연한데, 나는 결국이 문제를 스스로 해결할 수 있었다. 조금 벗어나 버린 것은 새로운 문서였습니다. 사실 나는 기본적으로 힙 저장소를 사용하고 있다고 생각했습니다. 또 하나의 질문 : 항상 '을 구성해야합니까? 또는 Eventing을 구성하고자 할 때? 다시 한 번 감사드립니다 –
아니요, 이벤트가 항상 존재합니다. 따라서 기본값이 없으면 풀을 제공해야합니다. – Henri