Infinispan升级至12.1版本namedCache配置报错适配方案咨询
问题根因
- Infinispan从7.x版本开始对配置格式做了不兼容升级,废弃了原5.1版本的驼峰命名元素、调整了配置层级结构,你遇到的
ISPN000327错误就是旧格式配置不符合12.1版本语法规范导致的。 - 旧版本直接放在根节点下的
<namedCache>节点已被废弃,新版本要求所有缓存配置必须放在<cache-container>父节点下,且按缓存类型使用对应节点声明。
适配后的12.1版本配置
<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:infinispan:config:12.1 https://infinispan.org/schemas/infinispan-config-12.1.xsd" xmlns="urn:infinispan:config:12.1"> <cache-container default-cache="test-cache"> <local-cache name="test-cache"> <memory max-count="1000" when-full="REMOVE"/> <expiration lifespan="5400000" max-idle="4400000"/> </local-cache> </cache-container> </infinispan>
配置变更说明
- 原
<namedCache>节点替换为对应缓存类型的节点:本地缓存使用<local-cache>,分布式缓存使用<distributed-cache>,复制缓存使用<replicated-cache>,你原有配置属于本地缓存,因此使用<local-cache>即可。 - 原
<eviction>节点废弃,功能整合到<memory>节点下:maxEntries属性替换为max-count,LIRS策略从10.x版本开始已经成为默认的内存淘汰算法,不需要额外指定strategy属性,when-full="REMOVE"对应旧版本的开启淘汰逻辑。 - 原
<expiration>节点属性调整为短横线命名:maxIdle替换为max-idle,lifespan属性保持不变。
依赖检查修正
你当前的pom依赖中version标签缺少闭合尖括号,修正后即可避免类路径依赖加载异常:
<dependency> <groupId>org.infinispan</groupId> <artifactId>infinispan-core</artifactId> <version>12.1.7.Final</version> </dependency>
内容的提问来源于stack exchange,提问作者mathan26
相关产品推荐
相关产品推荐

