There is no session with id XXX

系统采用 shiro + redis + spring来做的权限控制系统。
 
登录时报 there is no session with XXX 跟踪断点发现,系统查询session时,查不到redis中的sessionID。
 
但是我通过redis客户端是可以看到的。
 
所以可以断定问题就出现在查询代码这一块儿。
 
经过排查发现,我们系统中采用的是redis集群的方式部署的,但是系统查询redis数据时用的是jedis操作类。
 
所以,我将redis的操作类(增删改查)替换为 JedisCluster 类。
 
将所有的对redis CRUD的类都改为这个,就好了。
 
还有一种可能也会报这个错。且网上大多数的都是因为这个原因才报的这个错。
 
即redis和shiro 的session 与中间件的缓存名字重复。导致缓存失效。
 
贴个连接好了。
 
 
总归就是一句话,重写session
 
 
posted @ 2017-09-18 16:36  每天进步一丶  阅读(5306)  评论(1编辑  收藏  举报