данные не достигают моей конечной точки в оркестровке wso2 esb - PullRequest
0 голосов
/ 28 мая 2018

Я совершенно новичок в WSO2 и ESB, но у меня есть последовательность, которая принимает данные json и отправляет значение в этих данных json в мой микро-сервис end point msf4j-spring, сервис принимает строку и возвращает строку,Кажется, мой insequence может найти работающий микро-сервис, но я не могу отправить данные на сервис для обработки.Я знаю, что делаю что-то не так, но я просто не знаю, что это такое.

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="mainServiceRouteSeq" trace="enable" xmlns="http://ws.apache.org/ns/synapse">
<property expression="json-eval($.type)" name="postParam"
    scope="default" type="STRING" xmlns:ns="http://org.apache.synapse/xsd"/>
<log level="custom">
    <property expression="$ctx:postParam"
        name="########RouteServiceLogs" xmlns:ns="http://org.apache.synapse/xsd"/>
</log>
<switch source="json-eval($.type)" xmlns:ns="http://org.apache.synapse/xsd">
    <case regex="foo">
        <log>
            <property name="+RouteSeq" value="FOO"/>
            <property expression="json-eval($)" name="sending uri.data"/>
        </log>
        <property expression="json-eval($)" name="uri.data"
            scope="default" type="STRING"/>
        <call>
            <endpoint>
                <address format="rest" uri="http://localhost:9090/out/encrypt"/>
            </endpoint>
        </call>
        <property expression="json-eval($)" name="RESPONSE2"
            scope="default" type="STRING"/>
        <log level="custom">
            <property expression="get-property('RESPONSE2')" name="LOG_RESPONSE2"/>
        </log>
    </case>
    <case regex="bar">
        <log>
            <property name="-RouteSeq" value="BAR"/>
            <property expression="json-eval($)" name="sending uri.data"/>
        </log>
        <property expression="json-eval($)" name="uri.data"
            scope="default" type="STRING"/>
        <send>
            <endpoint>
                <address format="rest" uri="http://localhost:9090/out/encrypt"/>
            </endpoint>
        </send>
        <log level="full"/>
        <property expression="json-eval($)" name="RESPONSE2"
            scope="default" type="STRING"/>
        <log level="custom">
            <property expression="get-property('RESPONSE2')" name="LOG_RESPONSE2"/>
        </log>
    </case>
    <default/>
</switch>
</sequence>

1 Ответ

0 голосов
/ 14 июня 2018

После долгих часов чтения и понимания синтаксиса wso2.Ниже приведено решение моей проблемы после удаления отображения URL в моей последовательности API, поскольку оно мешало моему посреднику вызовов, и я добавил blocking, чтобы он был true, чтобы мой вызов был синхронным

<?xml version="1.0" encoding="UTF-8"?>
<sequence name="balanceEnquirySeqIN" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<log level="custom">
    <property expression="json-eval($.)" name="in_request"/>
</log>
<switch source="json-eval($.agentInstitutionCode)">
    <case regex="001">
        <payloadFactory media-type="json">
            <format>{


                "channel": "",
                "type": "",
                "customerId": "$1",
                "customerIdType": "",
                "submissionTime": "",
                "reqTranId": "$2",
                "passcode": ""

                }
            </format>
            <args>
                <arg evaluator="json" expression="$.agentAccountNumber"/>
                <arg evaluator="json" expression="$.requestID"/>
            </args>
        </payloadFactory>
        <log level="custom">
            <property expression="json-eval($.)" name="CHANGED_REQUEST"/>
        </log>
        <call blocking="true"/>
        <property name="messageType" scope="default" type="STRING" value="application/json"/>
        <log level="custom">
            <property expression="json-eval($.)" name="DATA_RETURNED"/>
        </log>
        <enrich>
            <source clone="true" type="inline">
                <direct xmlns="">001</direct>
            </source>
            <target action="child" type="body"/>
        </enrich>
        <log level="full">
            <property expression="json-eval($.)" name="msg2"/>
        </log>
        <loopback/>
    </case>

  </switch>
</sequence>
...