重新部署新节点后,其他节点抛出错误:
Application error: java.lang.NoClassDefFoundError: com/hazelcast/spi/WaitNotifyKey
at com.hazelcast.map.impl.MapDataSerializerHook$2.createNew(MapDataSerializerHook.java:75) ~[backend-0.5.jar:na]
at com.hazelcast.map.impl.MapDataSerializerHook$2.createNew(MapDataSerializerHook.java:73) ~[backend-0.5.jar:na]
at com.hazelcast.internal.serialization.impl.ArrayDataSerializableFactory.create(ArrayDataSerializableFactory.java:42) ~[backend-0.5.jar:na]
at com.hazelcast.internal.serialization.impl.DataSerializer.read(DataSerializer.java:111) ~[backend-0.5.jar:na]
at com.hazelcast.internal.serialization.impl.DataSerializer.read(DataSerializer.java:47) ~[backend-0.5.jar:na]
当前存储在地图中的所有内容都是字符串(序列化为JSON的对象)...任何可能导致此问题的线索?
修改
澄清...... Hazelcast在嵌入式Jetty服务器内部运行。 当Jetty关闭时,hazelcast实例也会停止:
instance.shutdown();
与此同时,我将以下设置设置为:
<map name="*">
<in-memory-format>BINARY</in-memory-format>
</map>
似乎解决了这个问题。
不确定为什么一个简单的String会出现问题:
<map name="*">
<in-memory-format>OBJECT</in-memory-format>
</map>