WSO2 ESB如何从端点读取XML属性响应

时间:2018-11-21 04:26:07

标签: xpath wso2 wso2esb synapse

我创建了一个API女巫调用和Endpoint,并返回了一些响应。基于Endpoint返回的响应,我想要检索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 :(得分:2)

从端点获取的XML格式不正确,err标签未正确打开。如果是这样的话:

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

然后您可以使用:/rsp/@status,它将以字符串形式返回fail

在此处查看Demo