从infinispan wildfly子系统下配置的缓存容器中获取预配置缓存

shi*_*ner 1 infinispan wildfly wildfly-8 wildfly-9 wildfly-10

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

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

@Resource(lookup = "java:jboss/infinispan/container/TEST")
private EmbeddedCacheManager cacheManager;
Run Code Online (Sandbox Code Playgroud)

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

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

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

那么有没有人(可能是infinispan的贡献者)知道答案?非常感谢和许多赞赏;)

小智 5

直接注入您的缓存.

@Resource(lookup = "java:jboss/infinispan/cache/TEST/x")
private Cache<?, ?> cacheX;
@Resource(lookup = "java:jboss/infinispan/cache/TEST/y")
private Cache<?, ?> cacheY;
Run Code Online (Sandbox Code Playgroud)