Как настроить тип List<?> В hazelcast-client.xml для настраиваемой сериализации байтового массива

Я создал собственный класс сериализации с помощью ByteArraySerializer следующим образом.

public class ProgramListSerializer implements ByteArraySerializer<List<Program>> {
public static final TypeReference<List<Program>> LIST_PROGRAM_TYPE = new TypeReference<List<Program>>() {};

private ObjectMapper mapper = new ObjectMapper(new SmileFactory());

public ProgramListSerializer() {
}

public int getTypeId() {
    return 1001;
}

public byte[] write(List<Program> object) throws IOException {
    return this.mapper.writeValueAsBytes(object);
}

public List<Program> read(byte[] buffer) throws IOException {
    return this.mapper.readValue(buffer, LIST_PROGRAM_TYPE);
}

public void destroy() {
}}

Теперь мне нужно настроить это в hazelcast-client.xml. Я попытался определить следующим образом.

<serialization>
<serializers>
  <serializer class-name="com.XXX.serializer.ProgramListSerailizer" type-class="java.util.List&lt;com.xxx.Program&gt;"/>
</serializers>

Hazelcast не может распознать класс. Вызывается: com.hazelcast.nio.serialization.HazelcastSerializationException: java.lang.ClassNotFoundException: java.util.List

Есть ли способ определить тип-класс в hazelcast-client.xml для коллекций (List,Set) с обобщениями?

2 ответа

Решение

Извините, экранирующие символы отображаются правильно, это должно быть

"&lt;" = "<"
"&gt;" = ">"

Без проверки правильности загрузки определения вы можете исправить определение, правильно указав символы "<" и ">":

"<" = "<" ">" = ">"

в качестве таких:

тип класса = "java.util.List"

Другие вопросы по тегам