#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