我将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 问题解决。。。