RPC-клиент для вызова потока в corda

#corda

#corda

Вопрос:

Я пытаюсь вызвать поток примеров hellow world через RPC-клиент. Согласно документации, я должен вызвать startFlowDynamic для вызова потока. Но я не могу закодировать вызов метода startflowdynamic.

 Integer iouValue=99;
Party otherParty= nameornull("O=PartyB,L=New York,C=US");
proxy.startFlowDynamic(com.template.IOUFlow,iouValue,otherParty);
logger.info("{}", nodes);
  

Журнал ошибок

Ошибка: Ошибка: (48, 14) java: метод startFlowDynamic в интерфейсе net.corda.core.messaging.CordaRPCOps не может быть применен к заданным типам; требуется: java.lang.Class>, java.lang.Найден объект[]: com.template.потоки.IOUFlow, java.lang.Целое число, net.corda.core.identity.Причина участника: не удается определить тип переменной (переменных) T (несоответствие аргументов; com.template.потоки.IOUFlow не может быть преобразован в java.lang.Класс>

Пожалуйста, помогите

Комментарии:

1. пожалуйста, добавьте свой журнал ошибок или объясните свою проблему

2. Целое значение iouValue= 99; CordaX500Name x500Name = CordaX500Name.parse(«O = PartyB, L = Нью-Йорк, C = США»); Участник otherParty=proxy.wellKnownPartyFromX500Name(x500Name); конечный IOUFlow I = новый IOUFlow(iouValue,otherParty); proxy.startFlowDynamic(I, iouValue,otherParty);

3. Ошибка: Ошибка: (48, 14) java: метод startFlowDynamic в интерфейсе net.corda.core.messaging. CordaRPCOps не может быть применен к заданным типам; требуется: java.lang. Класс<? расширяет net.corda.core. потоки. FlowLogic<? расширяет T>>, java.lang. Найден объект[]: com.template. потоки. IOUFlow, java.lang. Целое число, net.corda.core.identity. Причина участника: не удается определить тип переменной (переменных) T (несоответствие аргументов; com.template. потоки. IOUFlow не может быть преобразован в java.lang. Класс<? расширяет net.corda.core. потоки. FlowLogic<? расширяет T>>)

4. Где IOUFlow — это имя моего класса потока, аннотированного @StartableByRPC

Ответ №1:

Первым параметром startFlowDynamic метода должен быть объект класса потока, который вы хотите запустить. Пример противника:

 SignedTransaction result = proxy.startTrackedFlowDynamic(IOUIssueFlow.InitiatorFlow.class, state).getReturnValue().get();
  

Это точное приложение IOU CorDapp, которое вы пытаетесь запустить, имеет полностью реализованный сервер Spring по адресу: https://github.com/corda/samples-java/tree/master/Advanced/obligation-cordapp/clients