У меня есть простая реализация "LinearState", где единственным параметром является UniqueIdentifier. У меня есть простой контракт с ним.
Однако, когда я пытаюсь пройти через модульное тестирование, я получаю «NotSerializabeException».
Я использую Java-шаблон Corda v4. Настройка тестирования с Gradle Runner на IntelliJ.
Я пытался аннотировать класс с помощью @CordaSerializable, а конструктор - с помощью @ ConstructorForDeserialization
@CordaSerializable
public class InvestorState implements LinearState {
private final UniqueIdentifier linearId;
@ConstructorForDeserialization
public InvestorState(UniqueIdentifier id) {
this.linearId = id;
}
...
}
Error log:
data(net.corda.core.contracts.ContractState) -> Trying to build an object serializer for com.mycordapp.states.InvestorState, but it is not constructible from its public properties, and so requires a custom serialiser.
java.io.NotSerializableException: data(net.corda.core.contracts.ContractState) -> Trying to build an object serializer for com.mycordapp.states.InvestorState, but it is not constructible from its public properties, and so requires a custom serialiser.
at net.corda.serialization.internal.amqp.ObjectSerializer$Companion.make(ObjectSerializer.kt:18)
at net.corda.serialization.internal.amqp.DefaultLocalSerializerFactory.makeNonCustomSerializer(LocalSerializerFactory.kt:240)
...