如何使用 Eclipse 在动态 Web 项目中配置 Infinispan 8.0.1 IDE

How to configure Infinispan 8.0.1 in Dynamic Web Project using Eclipse IDE

我是 Infinispan 和 JBOSS Cache 的新手,我正在尝试使用 infinispan 文档来学习这些概念。但未能成功配置缓存的自定义 xml 配置。你能帮帮我吗??

我有以下 Java Class(Infinispan jar 文件已添加到构建路径)

CustomCacheBean.java

package com.jboss.cache;
import java.io.IOException;
import org.infinispan.Cache;
import org.infinispan.configuration.cache.ConfigurationBuilder;
import org.infinispan.eviction.EvictionStrategy;
import org.infinispan.manager.DefaultCacheManager;
import org.infinispan.manager.EmbeddedCacheManager;
public class CustomCacheBean {
public static void main(String[] args) {
  EmbeddedCacheManager manager = 
           new DefaultCacheManager();
           manager.defineConfiguration("custom-cache",new ConfigurationBuilder().build());
           Cache<Object, Object> c = manager.getCache("custom-cache");
   try {
        c = new DefaultCacheManager("infinispan.xml").getCache("xml-configured-cache");
   } catch (IOException e) {
        e.printStackTrace();
   }
 }
}

下面是我的xml

infinispan.xml(放在web_Content文件夹下)

<infinispan xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="urn:infinispan:config:8.0.1 http://www.infinispan.org/schemas/infinispan-config-8.0.1.xsd"
    xmlns="urn:infinispan:config:8.0.1">
    <namedCache name="xml-configured-cache">
            <eviction strategy="LIRS" maxEntries="10" />
    </namedCache>
</infinispan>

当我尝试执行 CustomCacheBean java class 时,出现以下错误

控制台:

log4j:WARN No appenders could be found for logger (infinispan.org.jboss.logging).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" org.infinispan.commons.CacheConfigurationException: ISPN000327: Cannot find a parser for element 'infinispan' in namespace 
'urn:infinispan:config:8.0.1'. Check that your configuration is up-to date for this version of Infinispan.
at org.infinispan.configuration.parsing.ParserRegistry.parseElement(ParserRegistry.java:147)
at org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:131)
at org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:118)
at org.infinispan.configuration.parsing.ParserRegistry.parse(ParserRegistry.java:105)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:271)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:244)
at org.infinispan.manager.DefaultCacheManager.<init>(DefaultCacheManager.java:231)
at com.jboss.cache.CustomCacheBean.main(CustomCacheBean.java:19)

我建议使用基于 Java 的配置而不是 XML。你可以看看教程:

请注意页面底部有一个 Github 按钮(它将导航到 Github 存储库)。

您可能在 XML 配置中使用了错误的命名空间 - 命名空间不使用微版本,因此,请使用:

xsi:schemaLocation="urn:infinispan:config:8.0 http://www.infinispan.org/schemas/infinispan-config-8.0.xsd" xmlns="urn:infinispan:config:8.0"

而不是

xsi:schemaLocation="urn:infinispan:config:8.0.1 http://www.infinispan.org/schemas/infinispan-config-8.0.1.xsd" xmlns="urn:infinispan:config:8.0.1"

请确保您的 IDE 根据 XSD 验证您的配置;这可以让你省去很多麻烦(不仅是 Infinispan)。