开发者社区> 问答> 正文

redis在被当成mbatis二级缓存的时候,在继续作为tomcat的sessi?报错

框架用的 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


这个问题该怎么解决,哪位朋友遇到过

展开
收起
爱吃鱼的程序员 2020-06-09 13:35:47 609 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    应该跟你的jedis客户端初始化方式有关系。jedis客户端都是要通过jedispool间接获取的,github的wiki上有说明,相当于一个数据库连接池,用完之后回收。

    2020-06-09 13:36:03
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
基于英特尔 SSD 的虚拟机缓存解决SSD 立即下载
用户态高速块缓存方案 立即下载
高性能Web架构之缓存体系 立即下载