2016-02-25 3 views
1

Я поставил сообщение в очередь hazelcast так:передача сигнала через hazelcast

hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME).add(Void.TYPE); 

В другой стороне я зарегистрирован очереди слушателем:

hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME).addItemListener(new ItemListener<Void>() { 
    @Override 
    public void itemAdded(ItemEvent<Void> item) { 
    LOGGER.info("Logout all user signal received"); 
    logoutAllUsers(); 
    } 

    @Override 
    public void itemRemoved(ItemEvent<Void> item) { 
      // 
    } 
}, false); 
} 

Это не компилируется.

> Error:(36, 50) java: D:\...\LogoutServiceImpl.java:36: 
> addItemListener(com.hazelcast.core.ItemListener<java.lang.Object>,boolean) 
> in com.hazelcast.core.ICollection<java.lang.Object> cannot be applied 
> to (<anonymous 
> com.hazelcast.core.ItemListener<java.lang.Void>>,boolean) 

Я просто хочу передать сигнал из одного места в другое без значения.

Как сделать карибэль предположительно для этого?

P.S.

Я использую Java 6

ответ

0

проблема была связана с

hazelcastInstance.getQueue(LOGOUT_ALL_USERS_QUEUE_NAME) 

возвращается IQueue<Object>. Если отбросить его до IQueue<Void> - все правильно работает

+0

'hazelcastInstance. getQueue (LOGOUT_ALL_USERS_QUEUE_NAME) 'лучше. –

Смежные вопросы