Я использую карту с Hazelcast:Hazelcast: NotSerializableException
// Когда я делаю:
map.put(gen.newId(), myObject);
MyObject является очень сложным объектом и не реализует Serializable.
Я думал, что помещение конфигурации, как показано ниже было достаточно, не имея для реализации сериализации:
<map name="myMap">
<in-memory-format>OBJECT</in-memory-format>
</map>
Док Hazelcast говорит: http://docs.hazelcast.org/docs/3.5/manual/html/entryprocessor.html «Когда он хранится в качестве объекта (формат объекта), то процессор ввода применяется непосредственно к объекту. В этом случае не выполняется сериализация или десериализация «
Спасибо за любое предложение.
Это то, от чего я был отпущен. Thx для вашего ответа ... – Zitun
Другая причина в том, что Hazelcast в настоящее время не знает разницы между изменяемым и неизменяемым объектом. Поэтому представьте, что мы будем отслеживать ссылку на ваш объект, а теперь объект потенциально может быть разделен между потоками. Затем вы запускаете всевозможные неприятные условия гонки и проблемы с видимостью. Кроме того, представьте себе, что вы делаете некоторую логику своего общего объекта, и вы меняете некоторые поля и, в конечном счете, запускаете какое-то исключение. Теперь ваш объект, поскольку он является общим, частично изменен и приводит к постоянно противоречивому представлению. – pveentjer