2015-10-24 1 views
0

Je ne connais pas Infinispan et JBOSS Cache et j'essaie d'apprendre ces concepts à l'aide de la documentation d'Infinispan. Mais n'a pas réussi à configurer la configuration xml personnalisée pour le cache. Pouvez vous me donner un coup de main ??Comment configurer Infinispan 8.0.1 dans Dynamic Web Project à l'aide d'Eclipse IDE

Je suit classe Java (fichiers jar Infinispan ajoutés pour construire chemin)

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(); 
    } 
} 
} 

Et voici mon xml

infinispan.xml (placé sous dossier 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> 

Lorsque j'essaie d'exécuter CustomCacheBean jav une classe, je reçois l'erreur suivante

Console:

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) 

Répondre

1

Je recommande d'utiliser la configuration Java au lieu de XML. Vous pouvez jeter un oeil à des tutoriels:

S'il vous plaît noter qu'il ya un bouton Github en bas de la page (qui vous accédez au référentiel GitHub).

+0

Oui, je pourrais réussir à faire du cache programmatique simple en utilisant le cache par défaut et personnalisé. Il pourrait être très utile si je pouvais également apprendre la configuration en utilisant des fichiers XML. – user2197806

1

Vous êtes probablement en utilisant espace de nommage incorrect dans la configuration XML - namespaces ne pas utiliser la version micro, donc, utilisez:

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

au lieu de

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" 

S'il vous plaît, assurez-vous que votre IDE valide votre configuration par rapport au XSD; Cela peut vous épargner beaucoup de bruit (pas seulement avec Infinispan).

+0

Merci .. Je vais faire la même chose .. – user2197806