用过Shiro的朋友应该知道,我们在进行Session有效性验证的时候,常会用到QuartzSessionValidationScheduler这个类,它用了quartz的计划任务,定时触发检查Session是否已失效
问题是,现在Quartz已经出到2.2了,shiro-quartz这个包(哪怕是最新版本)所调用的quartz还停留在Quartz 1.x的阶段(Quartz 2.x里面的结构大改了)。如果你项目的Quartz是2.0以上的话,创建SimpleTrigger时就会报错
解决方法是,只要使用ExecutorServiceSessionValidationScheduler来代替QuartzSessionValidationScheduler即可。这个类其实就是创建一个线程,定时触发检查。对于检查Session有效性这种简单重复的任务,其实我认为线程已经绰绰有余了。为此特意去引用Quartz,未免有点小题大做