spring2.0+ehcache2.1.0配置
程序员文章站
2022-03-04 16:18:03
...
记录使用ehcache时遇到的两个问题
一、原使用的是spring2.0+ehcache1.2.4.jar,在jdk1.6+tomcat6下运行正常,升级为jdk1.7+tomcat7后,第一次访问报错500,再刷新正常访问。
关键错误信息:
net.sf.ehcache.CacheException: cacheNameCache:Could not remove disk store entry for webres. Error was cacheName Cache: The Disk store is not active.
解决办法:ehcache升级为ehcache-2.10.1.jar,ehcache-core-2.6.11.jar,ehcache-spring-annotations-1.2.0.jar(最新版本的ehcache本系统框架不能支持),运行正常。
二、同一台服务器,运行多个项目。出现新问题。服务无法正常启动,启动时报错。
关键错误信息:
net.sf.ehcache.CacheException: java.io.FileNotFoundException: C:\tomcat-7\temp\.ehcache-diskstore.lock (拒绝访问。)
百度后找到一些解决办法,但因本系统spring、和ehcache版本低并不适用。但原理明白了。多个项目同时使用了ehcache-diskstore文件。第一个项目使用后,该文件被锁,其他项目不能正常读写。所以需要为每个项目ehcache文件设置各自的存储位置。
具体配置方法:
1、增加配置文件:ehcache.xml。主要是修改了磁盘存储路径,其他使用了默认设置。
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../config/ehcache.xsd" updateCheck="false"> <diskStore path="java.io.tmpdir/proName"/> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" maxElementsOnDisk="10000000" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU"> </defaultCache> </ehcache>
2、修改spring的相关配置文件。增加了configLocation的配置
<bean id="cacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="classpath:ehcache.xml"/> <property name="shared" value="true"/> </bean>
推荐阅读
-
mysql 5.7以上版本安装配置方法图文教程(mysql 5.7.12mysql 5.7.13mysql 5.7.14)
-
Eclipse怎么在线配置Hibernate Tools?
-
eclipse怎么删除配置好的多余的工作空间?
-
Mysql5.7.17 winx64.zip解压缩版安装配置图文教程
-
MySQL 5.6下table_open_cache参数优化合理配置详解
-
Centos7安装和配置Mysql5.7
-
eclipse怎么创建servlet中class并配置servlet教程
-
Android studio怎么配置代码检查规则?
-
Visual Studio怎么重新配置开发环境?
-
vb每次打开都让配置cad2007怎么办?