框架用的 springmvc+spring+mybatis3
mybatis开启二级缓存,用redis当二级缓存容器,实现方法是加入jedis.jar,自己写了个cache类实现mybatis的cache接口 之后在mybatis配置文件中开启二级缓存,map里写上cache标签 且测试运行成功,redis能正常保存框架查询时候的缓存。
今天想把tomcat的session也丢给redis来管理,实现方法是tomcat-redis-session-manager-1.2-tomcat-7.jar,commons-pool-1.3.jar,jedis-2.0.0.jar的jar放入tomcat目录下的lib文件夹,在tomcat的context.xml中写上
<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
<Manager className="com.radiadesign.catalina.session.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
测试不通过,后将Map接口里边的二级缓存标签去除后即可正常保存session。
现在的问题是两个功能不能一起使用 要用session就不能二级缓存。
这是两个功能一起使用的时候的报错信息
Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error parsing Mapper XML. Cause:
org.apache.ibatis.cache.CacheException: Could not instantiate cache implementation (class util.RedisCache).
Cause: java.lang.reflect.InvocationTargetException
这个问题该怎么解决,哪位朋友遇到过
应该跟你的jedis客户端初始化方式有关系。jedis客户端都是要通过jedispool间接获取的,github的wiki上有说明,相当于一个数据库连接池,用完之后回收。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。