Проблема сериализации транзакций Corda 4.0 - PullRequest
0 голосов
/ 28 марта 2019

Недавно обновившись до Corda 4.0, мы теперь видим исключение сериализации при попытке создания транзакций:

[ОШИБКА] 10: 09: 49,500 [Макет сети] amqp.SerializationOutput. - Сериализация не удалась. Направление = "Сериализация", TYPE = "net.corda.core.transactions.TraversableTransaction", msg = "Определенный метод получения для команд параметров возвращает тип java.util.List> все еще лежит в основе тип java.util.List> ", ClassChain = "net.corda.core.transactions.TraversableTransaction" {actor_id = Только для тестирования, actor_owning_identity = O = Поставщик 1, L = Лондон, C = ГБ, actor_store_id = TEST, идентификатор волокна = 10000001, Поток-ID = e61b7da7-6826-4410-9414-1c03bebbc3fe, invocation_id = 58c5f5ff-09f8-4bfa-bbe5-cf6b0ef47d06, invocation_timestamp = 2019-03-28T10: 09: 46.205Z, origin = только для Тестирование, session_id = 58c5f5ff-09f8-4bfa-bbe5-cf6b0ef47d06, session_timestamp = 2019-03-28T10: 09: 46.205Z, идентификатор потока = 400}

Есть идеи, что вызывает это?

Ответы [ 2 ]

1 голос
/ 18 апреля 2019

Каждый раз, когда вы видите сообщение об ошибке этой формы на Corda 4:

Определенный метод получения для параметра [имя параметра] возвращает тип [тип], но базовый тип [точно такой же тип]

Это вызвано ошибкой в ​​некоторых версиях Guava.

Corda 4 использует версию Guava 25.1-jre.Однако, если ваш узел загружает другую версию Guava (например, 21.0), которая переопределяет версию Java Corda, вы увидите эту ошибку.

Запланировано исправление для Corda 4.1.

0 голосов
/ 31 марта 2019

Я столкнулся с этой проблемой и после обновления до 4.0. Мои потоки возвратили транзакцию как вывод, и у меня есть исключение сериализации TraversableTransaction. Я не решил это. Я создал поток ответа DTO со всеми соответствующими данными, trxId и т. Д. *

Пример:

SignedTransaction signedTransaction = subFlow(new FinalityFlow(signedTx, session));
response.setTrxId(signedTransaction.getId().toString());
return response;
...