使用shiro和ehcache整合时候,登陆出现异常,求救

发布于 2021-12-02 11:44:43 字数 17 浏览 968 评论 10

项目情况struts2 

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(10

背叛残局 2021-12-08 12:35:23

现在
net.sf.ehcache改为
net.sf.ehcache.internal了吗?我看到search.maven.org里面
net.sf.ehcache更新到2.6.9而
net.sf.ehcache.internal是从2.7.0开始更新的。 但是两个的用法好像不太一样。 

酒几许 2021-12-08 12:23:45

我靠,终于解决了,原来是ehcache版本的问题,ehcache-core2.5.0之前的版本不会出问题,2.5.0及之后会报这个异常,我选了个ehcache-core2.4.8的好使。

<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
 <version>2.4.8</version>
</dependency>

看官方的文档说明:

Versions of Ehcache before version 2.5 allowed any number of CacheManagers with the same name (same configuration resource) to exist in a JVM.

Ehcache 2.5 and higher does not allow multiple CacheManagers with the same name to exist in the same JVM. CacheManager() constructors creating non-Singleton CacheManagers can violate this rule

偏爱自由 2021-12-08 10:22:11

嚓,我也碰到这个问题了,也是shiro和hibernate3.x的缓存都用了,后来把shiro的缓存改成

<bean id="memoryCacheManager" class="org.apache.shiro.cache.MemoryConstrainedCacheManager" />

让shiro用MemoryConstrainedCacheManager内存缓存就ok了,总之变了个缓存,但还没解决冲突问题,求正解。

沙与沫 2021-12-08 09:13:18

实际上,错误的信息就提示你了CacheManager这个实例,在jvm中只能存在一个,spring cache及hibernate及shiro的都的缓存中,都用这个实例就行了

孤独患者 2021-12-08 05:09:12

我是同时用了spring cache 和hibernate二级缓存,也报Another unnamed CacheManager already exists in the same VM 的错。请问你知道怎么解决吗?

三月梨花 2021-12-07 22:31:49

是不是你配置了hibernate ehcache有二级缓存?

冷弦 2021-12-07 10:48:55

将这个ehcache.xml 换成另外的名字:ehcache-shiro.xml 再看看哪报错。

坚持沉默 2021-12-07 03:21:33

这个写法和我写的一样啊,没什么区别。。我按照你写的改了,也是出现这个错误。。

牵你的手,一向走下去 2021-12-05 03:11:17

shiroCacheManager = org.apache.shiro.cache.ehcache.EhCacheManager

回忆凄美了谁 2021-12-04 11:45:14

你配置 cacheManager 的时候如果没有显示指定 cacheManagerConfigFile,那么shiro将使用“classpath:org/apache/shiro/cache/ehcache/ehcache.xml”;

而 hibernate 将会加载你上面配置的那个ehcache.xml。

要解决同时有两个未命名的cacheManager

重新指定shiro cacheManager.cacheManagerConfigFile 的值为你自己配置的ehcache.xml

或者

在你自己配置的ehcache.xml 的 <ehcache/> 配置节指定一个name属性即<ehcache name=“xxx”/>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文