infinispan 缓存容器的 jndi 名称对于 wildfly 15 不再有效

jndi-name of infinispan cache container is not valid anymore with wildfly 15

从 jboss 作为 7 迁移到 wildfly 15 之后,infinispan 缓存容器的 jndi 名称对于 wildfly 15 不再有效。

OPVDX001: Validierungsfehler in standalone.xml ---------------------------------
|
|  344: 
|  345:         <subsystem xmlns="urn:jboss:domain:infinispan:7.0">
|  346:             <cache-container jndi-name="java:jboss/infinispan/my-container" name="my-container" module="org.infinispan.hibernate-cache">
|                                           "cache-container"
|                                    ^^^^ "jndi-name" ist kein zulässiges Attribut für das Element
|                                         
|                                         Die folgenden Attribute sind hier zulässig: aliases, default-cache,
|                                           module, name, statistics-enabled 
|
|  347:                 <local-cache  name="my-other-container">
|  348:                     <expiration lifespan="900000" />
|  349:                 </local-cache>
|
| "jndi-name" ist zulässig bei Elementen: 

jndi-name 有替代品吗?

属性 "jndi-name" 被删除。只需声明 属性 "name"。

然后您可以使用下面的模式查找容器。该容器在具有以下查找路径的 JDNI 上下文中可用:java:jboss/infinispan/container/<your-container-name>/

示例配置:

<cache-container name="my-container" module="org.infinispan.hibernate-cache">
    <local-cache name="lala" >
      <object-memory size="10000"/>
      <expiration max-idle="100000"/>
    </local-cache>
</cache-container>

而不是

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

使用

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

或者直接注入缓存

// java:jboss/infinispan/cache/<name-of-container>/<name-of-cache>
@Resource(lookup = "java:jboss/infinispan/cache/my-container/lala")
private Cache<String, PrincipalEntity> userCache;

另见:

wildscribe subsystem infinispan

related issue