我正在使用JCS,我以前用过同样的方式,没有任何问题。
当服务器启动时,我将手动设置缓存属性。
CompositeCacheManager ccm = CompositeCacheManager.getUnconfiguredInstance();
Properties props = new Properties();
props.put("jcs.default", "");
props.put("jcs.default.cacheattributes", "org.apache.jcs.engine.CompositeCacheAttributes");
props.put("jcs.default.cacheattributes.MaxObjects", "1000");
props.put("jcs.default.cacheattributes.MemoryCacheName", "org.apache.jcs.engine.memory.lru.LRUMemoryCache");
props.put("jcs.default.cacheattributes.UseMemoryShrinker", "true");
props.put("jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds", "3600");
props.put("jcs.default.cacheattributes.ShrinkerIntervalSeconds", "60");
props.put("jcs.default.elementattributes", "org.apache.jcs.engine.ElementAttributes");
props.put("jcs.default.elementattributes.IsEternal", "false");
ccm.configure(props);以这种方式设置时,将引发错误。
org.apache.jcs.engine.CompositeCacheAttributes cannot be cast to org.apache.commons.jcs.engine.behavior.ICompositeCacheAttributes我在其他项目中也使用过同样的方法,没有问题。为什么我现在要得到这个例外?
编辑
我正在从
<dependency>
<groupId>org.apache.jcs</groupId>
<artifactId>jcs</artifactId>
<version>1.3</version>
</dependency>在此之前,我还试图获得具有相同问题的2.0-beta版本
编辑2
我已经在吉拉开了一个票证,如果其他人也面临同样的问题,并希望跟进。
发布于 2019-07-31 10:00:39
经过几次尝试,已经发现这个问题与依赖关系有关。下面的一组依赖关系为我工作
<dependency>
<groupId>org.apache.jcs</groupId>
<artifactId>jcs</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>concurrent</groupId>
<artifactId>concurrent</artifactId>
<version>1.3.4</version>
</dependency>而不是-
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-jcs-core</artifactId>
<version>2.2</version>
</dependency>选择合适的依赖项集合为我解决了这个问题。
https://stackoverflow.com/questions/30198709
复制相似问题