2017-07-11 5 views
1

私は、ダミーFXレートのOracleを作成するためにoracle-exampleに従っていました。それはMockNetworkのテストに合格しました。ドライバを使った統合テストでは、「フローが登録されていません」という不具合が発生し、次のようなFlowSessionExceptionが発生します。 他の統合テストではフローを登録する必要はありません。それはオラクルのサービス特有ですか? テストに開始フローを登録するにはどうすればよいですか?corda M13.0 - Oracleの統合テスト

net.corda.core.flows.FlowSessionException: Party CN=FX Rate Oracle,O=FX Rate Oracle,L=San Francisco,C=US,OU=argent.fxrate_oracle rejected session request: argent.flow.FXRateQueryFlow has not been registered 
    at net.corda.node.services.statemachine.FlowStateMachineImpl.waitForConfirmation(FlowStateMachineImpl.kt:266) ~[corda-node-0.13.0.jar:?] 
    at net.corda.node.services.statemachine.FlowStateMachineImpl.startNewSession(FlowStateMachineImpl.kt:326) ~[corda-node-0.13.0.jar:?] 
    at net.corda.node.services.statemachine.FlowStateMachineImpl.sendAndReceive(FlowStateMachineImpl.kt:169) ~[corda-node-0.13.0.jar:?] 
    at net.corda.core.internal.FlowStateMachine$DefaultImpls.sendAndReceive$default(FlowStateMachine.kt:22) ~[corda-core-0.13.0.jar:?] 
    at net.corda.core.flows.FlowLogic.sendAndReceive(FlowLogic.kt:89) ~[corda-core-0.13.0.jar:?] 
    at argent.flow.FXRateQueryFlow.call(FXRateQueryFlow.kt:20) ~[service-interface-0.1.jar:?] 
    at argent.flow.FXRateQueryFlow.call(FXRateQueryFlow.kt:14) ~[service-interface-0.1.jar:?] 
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:107) [corda-node-0.13.0.jar:?] 
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:39) [corda-node-0.13.0.jar:?] 
    at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1067) [quasar-core-0.7.6-jdk8.jar:0.7.6] 
    at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:767) [quasar-core-0.7.6-jdk8.jar:0.7.6] 
    at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100) [quasar-core-0.7.6-jdk8.jar:0.7.6] 
    at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91) [quasar-core-0.7.6-jdk8.jar:0.7.6] 
    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.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_131] 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?: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 net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:69) [corda-node-0.13.0.jar:?] 
+0

\

あなたは '@InitiatedBy(FXRateQueryFlow.class)'と 'FXRateQueryFlow'に対応するフローを注釈を付けていますか? – Shams

+0

ここにフローコードを貼り付けることはできますか? –

答えて

0

これが私自身の質問に対する回答であるかどうか不明です。しかし、この修正では、QueryHandlerクラスをオブジェクトラッパーからスタンドアロンクラスファイルに移動しているようです。 これは他のInitiatedByフローの多くでは必要ではなく、正しく自己登録されているようです。 @CordaServiceクラスと同じオブジェクトラッパーに含まれるフローのみが自己登録できないようです。

私にバグがあるようです。ショーン

+0

ありがとうございます - 私たちはそれをもう一度チェックし、必要に応じて修正を掲載します! –