在 WSO2 中读取纯文本响应
Reading plain text response in WSO2
我是WSO2的新蜜蜂。我正在使用 wso2esb-4.7.0。我想做的是这个
(a) 呼叫休息服务。其余服务的输入是XML。我已经创建了一个代理,我正在使用 tryIT UI 传递输入 XML
(2) 来自 rest 服务的示例响应是 [1234],我需要从中提取字符串 1234 并分配给一个变量以供进一步处理。
我的 TCP 监视器显示正确的响应来自后端休息服务。我尝试了各种选项来读取响应和提取字符串,但运气不佳。
此外,tryIt UI 将响应显示为 SomeJunkValue
现在定义
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="testUpdateSubstanceProxy"
transports="http"
statistics="enable"
trace="enable"
startOnLoad="true">
<target inSequence="callUpdateSubstanceURISequnec">
<outSequence>
<property name="messageType" value="text/plain" scope="axis2"/>
<send/>
</outSequence>
</target>
<description/>
</proxy>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="callUpdateSubstanceURISequnec" onError="fault" trace="enable">
<property name="messageType" value="text/plain" scope="axis2"/>
<send receive="gov:/receiveSubstanceIdSequnce">
<endpoint key="gov:/CallUpdateURISubstanceAddressPoint"/>
</send>
</sequence>
<sequence name="receiveSubstanceIdSequnce" xmlns="http://ws.apache.org/ns/synapse">
<send/>
<!-- A sample response is [1234]. How do I extract 1234 from the response and assign it to a variable-->
</sequence>
<endpoint xmlns="http://ws.apache.org/ns/synapse">
<address uri="http://localhost:7014/ourURL" format="pox">
<suspendOnFailure>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
<retryDelay>0</retryDelay>
</markForSuspension>
</address>
</endpoint>
尝试使用
<property xmlns:m0="http://ws.apache.org/commons/ns/payload"
name="payload"
expression="$body/m0:text"/>
这会将文本内容读取到名为 payload
的 属性
我最终写了 class 调解器来处理这个问题。想知道有没有更好的
我是WSO2的新蜜蜂。我正在使用 wso2esb-4.7.0。我想做的是这个 (a) 呼叫休息服务。其余服务的输入是XML。我已经创建了一个代理,我正在使用 tryIT UI 传递输入 XML (2) 来自 rest 服务的示例响应是 [1234],我需要从中提取字符串 1234 并分配给一个变量以供进一步处理。 我的 TCP 监视器显示正确的响应来自后端休息服务。我尝试了各种选项来读取响应和提取字符串,但运气不佳。
此外,tryIt UI 将响应显示为 SomeJunkValue 现在定义
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="testUpdateSubstanceProxy"
transports="http"
statistics="enable"
trace="enable"
startOnLoad="true">
<target inSequence="callUpdateSubstanceURISequnec">
<outSequence>
<property name="messageType" value="text/plain" scope="axis2"/>
<send/>
</outSequence>
</target>
<description/>
</proxy>
<sequence xmlns="http://ws.apache.org/ns/synapse" name="callUpdateSubstanceURISequnec" onError="fault" trace="enable">
<property name="messageType" value="text/plain" scope="axis2"/>
<send receive="gov:/receiveSubstanceIdSequnce">
<endpoint key="gov:/CallUpdateURISubstanceAddressPoint"/>
</send>
</sequence>
<sequence name="receiveSubstanceIdSequnce" xmlns="http://ws.apache.org/ns/synapse">
<send/>
<!-- A sample response is [1234]. How do I extract 1234 from the response and assign it to a variable-->
</sequence>
<endpoint xmlns="http://ws.apache.org/ns/synapse">
<address uri="http://localhost:7014/ourURL" format="pox">
<suspendOnFailure>
<progressionFactor>1.0</progressionFactor>
</suspendOnFailure>
<markForSuspension>
<retriesBeforeSuspension>0</retriesBeforeSuspension>
<retryDelay>0</retryDelay>
</markForSuspension>
</address>
</endpoint>
尝试使用
<property xmlns:m0="http://ws.apache.org/commons/ns/payload"
name="payload"
expression="$body/m0:text"/>
这会将文本内容读取到名为 payload
我最终写了 class 调解器来处理这个问题。想知道有没有更好的