【问题标题】:Hazelcast - KRYO serialization Integration Issue --> java.lang.LinkageError: attempted duplicate class definition for name:Hazelcast - KRYO 序列化集成问题 - > java.lang.LinkageError:尝试重复的名称类定义:
【发布时间】:2014-03-17 01:10:49
【问题描述】:

我正在尝试将 KRYO 序列化与 Hazelcast 集成,但由于以下错误而无法成功。

在地图初始化时发生错误。有人可以解释一下吗?

Mar 16, 2014 3:00:39 PM com.hazelcast.map.operation.PutAllOperation
SEVERE: [10.153.233.113]:5700 [spring-group] [3.2-RC1] com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.LinkageError: loader (instance of  com/esotericsoftware/reflectasm/AccessClassLoader): attempted  duplicate class definition for name: "com/model/AgreementVOConstructorAccess"
com.hazelcast.query.impl.QueryException: com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.LinkageError: loader (instance of  com/esotericsoftware/reflectasm/AccessClassLoader): attempted  duplicate class definition for name: "com/model/AgreementVOConstructorAccess"
    at com.hazelcast.query.impl.QueryEntry.extractViaReflection(QueryEntry.java:96)
    at com.hazelcast.query.impl.QueryEntry.getAttribute(QueryEntry.java:79)
    at com.hazelcast.query.impl.IndexImpl.saveEntryIndex(IndexImpl.java:62)
    at com.hazelcast.query.impl.IndexService.saveEntryIndex(IndexService.java:68)
    at com.hazelcast.map.DefaultRecordStore.saveIndex(DefaultRecordStore.java:880)
    at com.hazelcast.map.DefaultRecordStore.putFromLoad(DefaultRecordStore.java:811)
    at com.hazelcast.map.operation.PutAllOperation.run(PutAllOperation.java:71)
    at com.hazelcast.spi.impl.BasicOperationService.processOperation(BasicOperationService.java:364)
    at com.hazelcast.spi.impl.BasicOperationService.access$800(BasicOperationService.java:107)
    at com.hazelcast.spi.impl.BasicOperationService$BasicOperationProcessorImpl.process(BasicOperationService.java:769)
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.process(BasicOperationScheduler.java:266)
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.doRun(BasicOperationScheduler.java:260)
    at com.hazelcast.spi.impl.BasicOperationScheduler$PartitionThread.run(BasicOperationScheduler.java:235)

【问题讨论】:

    标签: hazelcast kryo


    【解决方案1】:

    也许一些代码会有所帮助。

    我前段时间为 hazelcast 添加了 Kryo 序列化程序,但没有遇到问题:

    http://hazelcast.org/kryo-serializer/

    【讨论】:

    • 嗨,我使用了与上面提到的相同的方法。但是在初始化地图时失败了。不确定这是否是由于任何并发性,因为我几乎没有地图存储 impl 支持的地图并加载启动时映射..
    • 您好,很抱歉延迟回复。是的,我使用了与您发布的代码相同的代码。只是替换为我的对象引用。
    • 附加信息:AgreementVO 是 Serializable 类型,有 10 个成员变量,其中一个是自定义类型/Class(Entity) 我们是否应该注册这个类?意味着注册所有引用的类,这些类是需要序列化的对象的一部分?有关此错误的可能原因的任何提示?
    • Afaik 你只需要注册根类。
    猜你喜欢
    • 2016-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多