ChCache 报 java.lang.NullPointerException

项目的工作流耗时非常大,我们根据对后台日志的分析以及代码审查发现流程模块在频繁的查询数据库的一些配置表,所以我们决定将一部分配置表进行缓存处理。我们采用EhCache技术来处理,据说它可以实现分布式而且配置简单。

我将ehcache-core-1.7.0.jar导入到项目 。chcache.xml(错误的)的配置如下

<?xml version="1.0" encoding="GB2312"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">

<cache name="a" maxElementsInMemory="1000" eternal="true"
timeToIdleSeconds="3600" timeToLiveSeconds="3600" overflowToDisk="false" />


</ehcache>


运行 CacheManager manager = CacheManager.getInstance(); 后台直接就报



Exception in thread "main" java.lang.NullPointerException
at net.sf.ehcache.CacheManager.init(CacheManager.java:281)
at net.sf.ehcache.CacheManager.<init>(CacheManager.java:248)
at net.sf.ehcache.CacheManager.create(CacheManager.java:501)
at net.sf.ehcache.CacheManager.getInstance(CacheManager.java:522)
at Test.main(Test.java:13)


后来经过多方面查找信息发现chcache.xml 至少要配置两个cache 属性 ,一个是defaultcache,另外一个是指定名称的cache。ehcache.xml 代码如下:



<?xml version="1.0" encoding="GB2312"?>
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd">


<defaultCache maxElementsInMemory="1000" eternal="true"
timeToIdleSeconds="3600" timeToLiveSeconds="3600" overflowToDisk="true" />
<cache name="a" maxElementsInMemory="1000" eternal="true"
timeToIdleSeconds="3600" timeToLiveSeconds="3600" overflowToDisk="false" />


</ehcache>




ok 问题解决。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值