Hazelcast. 序列化失败

问题描述 投票:0回答:1

我用的是

  • Apache Camel 2.23.4;
  • Hazelcast 3.12.6.

更新Apache Camel。

  • Apache Camel 3.2.0.; Hazelcast 3.12.6;
  • Hazelcast 3.12.6.

更新apache camel后,在向对象中添加对象时,会出现 hazelcast IMap 我得到一个序列化异常。

@lombok.Value
@lombok.AllArgsConstructor
public class Tasks implements Serializable {
  private String id;
  private String correlationId;
  private String key;
  private Map<String, Object> body;
  private Map<String, Object> props;
  private Boolean timer;
}

当一个放置在地图上的对象得到一个异常

IMap<String, Tasks> IMapTasks=hazelcastInstance.getMap(TASK_MAP_NAME);
IMapTasks.put(task.getId(), taks);

Stacktrace。

 Error receiving Notification Task control message : Failed to serialize 'home.test.service.model.Task'
com.hazelcast.nio.serialization.HazelcastSerializationException: Failed to serialize 'home.test.service.model.Task'
at com.hazelcast.internal.serialization.impl.SerializationUtil.handleSerializeException(SerializationUtil.java:82) ~[hazelcast-3.12.6.jar:3.12.6]
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:157) ~[hazelcast-3.12.6.jar:3.12.6]
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:133) ~[hazelcast-3.12.6.jar:3.12.6]
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:118) ~[hazelcast-3.12.6.jar:3.12.6]
at com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:106) ~[hazelcast-3.12.6.jar:3.12.6]
at com.hazelcast.spi.impl.NodeEngineImpl.toData(NodeEngineImpl.java:319) ~[hazelcast-3.12.6.jar:3.12.6]
at com.hazelcast.spi.AbstractDistributedObject.toData(AbstractDistributedObject.java:68) ~[hazelcast-3.12.6.jar:3.12.6]
at com.hazelcast.map.impl.proxy.MapProxyImpl.put(MapProxyImpl.java:133) ~[hazelcast-3.12.6.jar:3.12.6]
at com.hazelcast.map.impl.proxy.MapProxyImpl.put(MapProxyImpl.java:125) ~[hazelcast-3.12.6.jar:3.12.6]
.
. 
.
Caused by: java.io.NotSerializableException: com.rabbitmq.client.impl.LongStringHelper$ByteArrayLongString
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1184) ~[?:1.8.0_181]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) ~[?:1.8.0_181]
at java.util.HashMap.internalWriteEntries(HashMap.java:1790) ~[?:1.8.0_181]
at java.util.HashMap.writeObject(HashMap.java:1363) ~[?:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140) ~[?:1.8.0_181]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) ~[?:1.8.0_181]
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1432) ~[?:1.8.0_181]
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1178) ~[?:1.8.0_181]
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:348) ~[?:1.8.0_181]
at java.util.TreeMap.writeObject(TreeMap.java:2438) ~[?:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_181]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_181]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_181]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_181]
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1140) ~[?:1.8.0_181]
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1496) ~[?:1.8.0_181]

有什么想法吗?

java serialization java-8 apache-camel hazelcast
1个回答
0
投票

使用 @lombok.Value 使字段成为最终字段。

java.io.Serializable 需要一个noargs构造器

所以你可能需要

@lombok.AllArgsConstructor
@lombok.NoArgsConstructor
public class Tasks implements Serializable {
  private String id;
  private String correlationId;
  private String key;
© www.soinside.com 2019 - 2024. All rights reserved.