Я пытаюсь добавить переменную типа java.util.Date в качестве входных данных в поток. Он не принимает и жалуется на невозможность сериализации. Как я могу это исправить. Я видел, что Date не является частью класса DefaultSerializable.
Я заметил, что не могу даже получить поля типа Дата из хранилища. Видите ту же ошибку.
Есть ли способ сделать Java util Date Serializable?





вам нужно внести java.util.Date в белый список или любую другую дату, которую вы используете.
Создайте структуру папок, например:
resources>META-INF> services> net.corda.core.serialization.SerializationWhitelist.txt under your services folder.
Теперь создайте класс, как показано ниже, и заставьте его реализовать SerializationWhitelist, а в методе getWhitelist введите имена всех классов, которые вы хотите добавить в белый список.
public class SerializationWhiteList implements SerializationWhitelist {
@NotNull
@Override
public List<Class<?>> getWhitelist() {
return ImmutableList.of(HashSet.class, java.sql.Date.class, java.util.Date.class,
Instant.class);
}
}
В вашем файле SerializationWhitelist.txt укажите полное имя класса, включая имя пакета например: com.sc.corda.node.util.SerializationWhiteList.
Во время начальной загрузки Corda ищет классы, упомянутые здесь, и заносит их в белый список.
Ага - см. Пример здесь: github.com/corda/cordapp-template-kotlin/blob/release-V3/… и здесь: github.com/corda/cordapp-template-kotlin/blob/release-V3/….