1

我对 Wildfly 下的 infinispan 子系统感到非常困惑,并且无法从现有的缓存容器中获取预配置的缓存。为了可视化问题,我创建了一个在 Github 上共享的最小示例项目:infinispan-wildfly-test

测试设置创建一个带有两个缓存 (x,y) 的缓存容器 (TEST),将 x 设置为默认值。当我现在通过资源查找获得 EmbeddedCacheManager 时,我得到了我期望的容器:

@Resource(lookup = "java:jboss/infinispan/container/TEST")
private EmbeddedCacheManager cacheManager;

但是,当尝试获取缓存(x 或 y)时,我总是得到一个新创建的缓存,其配置与我使用 CLI 创建的配置不匹配,缓存完全未配置!

关键是我可以确定 EmbeddedCacheManager 是正确的容器,因为它将 Cache x 作为默认容器(但未配置)提供给我,但是我在这里缺少什么?如何获得缓存容器的预配置缓存?

那里的所有示例都没有解决这个问题,我不确定这些人是否意识到他们得到了一个未配置的缓存这一事实。示例始终只显示容器的资源查找以及获取默认缓存实例。没有检查配置...

那么有没有人知道答案(可能是 infinispan 的贡献者)?感谢和提前感谢;)

4

1 回答 1

5

直接注入你的缓存。

@Resource(lookup = "java:jboss/infinispan/cache/TEST/x")
private Cache<?, ?> cacheX;
@Resource(lookup = "java:jboss/infinispan/cache/TEST/y")
private Cache<?, ?> cacheY;
于 2016-05-20T20:10:11.313 回答