私はM13を使用しています(できるだけM14に移動します)。この例外を見て:すぐが付け加えKryoException:クラスkotlin.KotlinNullPointerExceptionは注釈もホワイトリストにもないので、シリアライズでは使用できません
com.esotericsoftware.kryo.KryoException: Class kotlin.KotlinNullPointerException is not annotated or on the whitelist, so cannot be used in serialization
:クライアントRPC.Iから自分の流れを起動しようとすると
E 15:11:10 [rpc-observation-sender-0] messaging.ObservableContext.sendMessage - Failed to send message, kicking client. Message was Observation(id=ObservableId(toLong=8088750694041100169), content=[[email protected] OnError null])
は、カスタムデータ型が@CordaSerializable属性を持っていることをcheckeddています。
私はRPCシリアル化に関連してM13にバグがあることを示す別の質問に対する答えを見ました。これは上記の例外を説明できますか?
本当にこれに固執しているので、どんな助けでも大歓迎です。
のフルスタックトレース:
E 15:11:10 [rpc-observation-sender-0] messaging.ObservableContext.sendMessage - Failed to send message, kicking client. Message was Observation(id=ObservableId(toLong=8088750694041100169), content=[[email protected] OnError null])
com.esotericsoftware.kryo.KryoException: Class kotlin.KotlinNullPointerException is not annotated or on the whitelist, so cannot be used in serialization
Serialization trace:
throwable (rx.Notification)
at net.corda.core.serialization.CordaClassResolver.checkClass(CordaClassResolver.kt:65) ~[main/:?]
at net.corda.core.serialization.CordaClassResolver.getRegistration(CordaClassResolver.kt:35) ~[main/:?]
at com.esotericsoftware.kryo.Kryo.getRegistration(Kryo.java:488) ~[kryo-4.0.0.jar:?]
at net.corda.nodeapi.RPCKryo.getRegistration(RPCStructures.kt:74) ~[main/:?]
at com.esotericsoftware.kryo.util.DefaultClassResolver.writeClass(DefaultClassResolver.java:97) ~[kryo-4.0.0.jar:?]
at com.esotericsoftware.kryo.Kryo.writeClass(Kryo.java:540) ~[kryo-4.0.0.jar:?]
at com.esotericsoftware.kryo.serializers.ObjectField.write(ObjectField.java:76) ~[kryo-4.0.0.jar:?]
at com.esotericsoftware.kryo.serializers.CompatibleFieldSerializer.write(CompatibleFieldSerializer.java:66) ~[kryo-4.0.0.jar:?]
at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:651) ~[kryo-4.0.0.jar:?]
at net.corda.core.serialization.KryoKt.serialize(Kryo.kt:169) ~[main/:?]
at net.corda.core.serialization.KryoKt$serialize$1.execute(Kryo.kt:151) ~[main/:?]
at net.corda.core.serialization.KryoKt$serialize$1.execute(Kryo.kt) ~[main/:?]
at net.corda.core.serialization.KryoPoolWithContext.run(Kryo.kt:652) ~[main/:?]
at net.corda.core.serialization.KryoKt.serialize(Kryo.kt:151) ~[main/:?]
at net.corda.core.serialization.KryoKt.serialize$default(Kryo.kt:150) ~[main/:?]
at net.corda.nodeapi.RPCApi$ServerToClient$Observation.writeToClientMessage(RPCApi.kt:170) ~[main/:?]
at net.corda.node.services.messaging.ObservableContext.sendMessage(RPCServer.kt:411) [main/:?]
at net.corda.node.services.messaging.RpcServerObservableSerializer$write$observableWithSubscription$1$onNext$1.run(RPCServer.kt:446) [main/:?]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_131]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:1.8.0_131]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:1.8.0_131]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_131]
E 15:54:42 [Thread-4 (ActiveMQ-client-global-threads)] internal.RPCClientProxyHandler.artemisMessageHandler - RPC reply arrived to unknown RPC ID RpcRequestId(toLong=8669965257690653719), this indicates an internal RPC error.
E 15:54:42 [Thread-4 (ActiveMQ-client-global-threads)] internal.RPCClientProxyHandler.artemisMessageHandler - RPC reply arrived to unknown RPC ID RpcRequestId(toLong=6979460553466678543), this indicates an internal RPC error.
E 15:54:42 [Thread-4 (ActiveMQ-client-global-threads)] internal.RPCClientProxyHandler.artemisMessageHandler - RPC reply arrived to unknown RPC ID RpcRequestId(toLong=2006512959418997107), this indicates an internal RPC error.
残りのスタックトレースを投稿できますか? – joel
完了しました - これを見ていただきありがとうございます。 – Toadfather
ありがとうございます。 2つ目のスタックトレースがあります.1つはフロー内で実際に間違ってNullPointerExceptionを引き起こし、もう1つはKryoがNullPointerExceptionをシリアル化しようとするときです。フローのアクティビティに関連するエラーメッセージの2番目のセットがあるかどうかを確認できますか? – joel