2014-09-25 40 views
0

我有一个关于处理org.apache.shiro.cache.CacheException的问题。启用Shiro的Web应用程序如何处理CacheExceptions

发生缓存异常时shiro的责任是什么?这RTE涟漪遍布整个堆栈,但我不清楚它在哪里处理和以何种方式。

shiro启用的web应用程序可以恢复吗?

缓存管理器是否重新初始化?

当缓存异常发生时,我是否必须重新启动应用程序?

例如,在cache.get(key)上发生超时异常或无法连接到节点异常。除了泡沫到停止和死亡,预期的结果是什么?

感谢

回答

0

我已经检查CacheException的所有惯例和唯一四郎所做的是把它扔。它永远不会被抓住,更不用说处理了。

所以唯一的预期结果是“泡到停止并死亡”。

你可以做的是在shiro前面有一个servlet过滤器,捕获这个异常,然后抓住CacheManager实例(你怎么做取决于你的设置)并调用cacheManager.getCache()。清除(),所以缓存被重置。

+0

我已经知道它泡沫和死亡,如果我需要阻止它,我需要在shiro之外进行干预。调用flush(清除)对我所赞赏的两个例子没有帮助。谢谢 – 2014-09-25 08:43:41

相关问题