gpt4 book ai didi

wso2 - 如何在 WSO2 ESB 中检索 REST 服务返回的 HTTP 状态?

转载 作者:行者123 更新时间:2023-12-02 15:36:19 26 4
gpt4 key购买 nike

部署在 ESB 上的我的代理服务正在调用另一个独立的 REST 服务。此服务返回 HTTP 状态 200 以及响应正文中的一些数据。我的问题是如何从响应中检索 HTTP 状态。这是我的配置:

   <proxy name="CQProxy"
transports="https http"
startOnLoad="true"
trace="disable">
<description/>
<target>
<inSequence>
<switch source="get-property('Action')">
<case regex="getTaskTicket">
<sequence key="GetTaskTicket"/>
</case>
<default/>
</switch>
</inSequence>
<outSequence>
<log>
<property xmlns:ns="http://org.apache.synapse/xsd"
name="Status"
expression="get-property('HTTP_SC')"/>
</log>
<send/>
</outSequence>
<faultSequence/>
</target>
<publishWSDL key="gov:/services/cqproxy/CQProxy.wsdl">
<resource location="CQProxy.xsd" key="gov:/services/cqproxy/CQProxy.xsd"/>
</publishWSDL>
</proxy>
<sequence name="GetTaskTicket">
...
<property name="REST_URL_POSTFIX"
value="/16783484?oslc.select=dcterms:title,oslc_cm:status"
scope="axis2"
type="STRING"/>
<property name="HTTP_METHOD" value="GET" scope="axis2" type="STRING"/>
<send>
<endpoint>
<address uri="http://.../simpleQuery"
format="rest"/>
<property name="OSLC-Core-Version" value="2.0" scope="transport"/>
<property name="Accept" value="application/rdf+xml" scope="transport"/>
</endpoint>
</send>
</sequence>
...

我尝试了以下代码:

<log>
<property xmlns:ns="http://org.apache.synapse/xsd" name="Status" expression="get-property('HTTP_SC')"/>
</log>

还有这个:

<log>
<property xmlns:ns="http://org.apache.synapse/xsd" name="Status" expression="get-property('axis2', 'HTTP_SC')"/>
</log>

但是他们都返回了null。

最佳答案

在更详细地阅读了 WSO2 文档之后,我找到了正确的答案:

<property xmlns:ns="http://org.apache.synapse/xsd" name="Status" expression="$axis2:HTTP_SC"/>

记录的 get-property('axis2', 'HTTP_SC') 不起作用很奇怪。

关于wso2 - 如何在 WSO2 ESB 中检索 REST 服务返回的 HTTP 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16902737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com