NullPointerException для KeyAffinityService

1

Я пытаюсь реализовать распределенную систему в Infinispan, и я хотел получить ключ, связанный с локальным узлом. Я пытался реализовать это, используя KeyAffinityService, но получаю исключение NullPointerException. Я надеялся, что кто-то поможет мне понять мою ошибку.

Фрагмент кода

    // Create the affinity service to find the Key for the manager  
    KeyAffinityService keyAffinityService = KeyAffinityServiceFactory.newLocalKeyAffinityService(  
            cache,  
            (KeyGenerator)new RndKeyGenerator(),  
            Executors.newSingleThreadExecutor(),  
            100);  

Реализация кэша выполняется следующим образом:

    EmbeddedCacheManager manager = new DefaultCacheManager();  
    try{  
        manager = new DefaultCacheManager("democluster.xml");  
    }catch(IOException e){}  
    Cache<Integer, String> cache = manager.getCache();  

Файл Xml

<infinispan  
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
      xsi:schemaLocation="urn:infinispan:config:5.1 http://www.infinispan.org/schemas/infinispan-config-5.1.xsd"  
      xmlns="urn:infinispan:config:5.1">  

   <global>  
      <transport clusterName="demoCluster"/>  
      <globalJmxStatistics enabled="true"/>  
   </global>  

   <namedCache name="clusteredCache">  
        <clustering mode="distributed">  
        <hash numOwners="1" >  
           <groups enabled="true"/>  
        </hash>  
        </clustering>  
    </namedCache>  
</infinispan>  

Ошибка:

Exception in thread "main" java.lang.NullPointerException  
  at org.infinispan.affinity.KeyAffinityServiceFactory.newLocalKeyAffinityService(KeyAffinityServiceFactory.java:95)  
  at org.infinispan.affinity.KeyAffinityServiceFactory.newLocalKeyAffinityService(KeyAffinityServiceFactory.java:104)  
  at SimpleCache.start(SimpleCache.java:46)  
  at SimpleCache.main(SimpleCache.java:96)

Мне было интересно, если кто-нибудь столкнулся с чем-либо подобным или может иметь какие-либо идеи относительно этой проблемы.

Теги:
nullpointerexception
infinispan

1 ответ

1
Лучший ответ

Вы используете неправильный кеш, вы должны делать

Cache<Integer, String> cache = manager.getCache("clusteredCache"); 

KeyAffinityService работает только с распределенным кешем, а кеш по умолчанию - только локальный (поскольку в вашей конфигурации нет элемента <default>).

  • 0
    Это сработало. Большое спасибо!!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню