Я пытаюсь настроить карту Hazelcast для использования прослушивателя записей с использованием Spring. Однако я вижу, что это не работает (события не приходят к слушателю).
Мой слушатель записи:
public class MyMapListener extends EntryAdapter<String, String> implements MapListener{
@Override
public void onEntryEvent(EntryEvent<String, String> event) {
EntryEventType type = event.getEventType();
System.out.println("Event type: " + type);
}
}
Контекст приложения My Spring:
<hz:hazelcast id="instance">
<hz:config>
<hz:group name="dev" password="password"/>
<hz:properties>
<hz:property name="hazelcast.merge.first.run.delay.seconds">5</hz:property>
<hz:property name="hazelcast.merge.next.run.delay.seconds">5</hz:property>
</hz:properties>
<hz:network port="5705" port-auto-increment="true">
<hz:join>
<hz:multicast enabled="true"/>
</hz:join>
</hz:network>
<hz:map name="myMap" >
<hz:entry-listeners>
<hz:entry-listener class-name="rw.gov.dgie.bms.hazelcast.listener.map.MyMapListener" include-value="true"/>
<hz:entry-listener implementation="myMapListener" local="true"/>
</hz:entry-listeners>
</hz:map>
</hz:config>
</hz:hazelcast>
<hz:client id="client">
<hz:group name="dev" password="password"/>
<hz:network>
<hz:member>127.0.0.1:5705</hz:member>
</hz:network>
</hz:client>
<bean class="rw.gov.dgie.bms.hazelcast.listener.map.MyMapListener" name="myMapListener"/>
<hz:map id="myMap" instance-ref="instance" name="MyMap" lazy-init="false"/>
Когда я добавляю слушателя к внедренной карте из кода Java, она работает нормально:
@Autowired
private IMap myMap;
myMap.addEntryListener((MapListener)new MyMapListener(), true);
Что я сделал не так?