WSO2 ESB, как прочитать ответ атрибута XML из конечной точки - PullRequest
0 голосов
/ 21 ноября 2018

Я создал один вызов ведьмы API и конечную точку и вернул ответ.Основываясь на ответе возврата конечной точки, я хочу получить значение status и перейти к следующему шагу.

Это мой api.xml выглядит как.

<api context="/sendSms" name="SendSmsApi" xmlns="http://ws.apache.org/ns/synapse">
<resource methods="GET" uri-template="/{username}/{password}">
    <inSequence>
        <property expression="get-property('MessageID')" name="msgID" scope="default" type="STRING"/>
        <log level="custom">
            <property expression="$trp:requestId" name="Request ID"/>
            <property expression="get-property('msgID')" name="msgID"/>
        </log>
        <call>
            <endpoint key="SmsLoginEP"/>
        </call>
        <property expression="what should i put here ?" name="response" scope="default" type="STRING"/>
        <log level="custom">
            <property expression="get-property('response')" name="Response"/>
        </log>
        <respond/>
    </inSequence>
    <outSequence>
        <send/>
    </outSequence>
    <faultSequence/>
</resource>

и это XML, который я получаю от конечной точки

<rsp status="fail"><err returncode="-2" desc="username record not found."</err></rsp>

Мой вопрос заключается в том, как мне получить атрибут status независимо от того, прошел он или нет, и вставить его в посредник свойств, чтобы я могможет выполнить переключение посредника после этого.

1 Ответ

0 голосов
/ 21 ноября 2018

XML, полученный вами от конечной точки, не является правильно сформированным тегом err неправильно открыт.Если предположить, что это выглядит так:

<rsp status="fail"><err returncode="-2" desc="username record not found."></err></rsp>

Тогда вы можете использовать: /rsp/@status он вернет fail в виде строки

См. Демо здесь.

...