1
<resource methods="GET" uri-template="/getTypeCodes" faultSequence="service_error_handler_">
  <inSequence>
     <log level="custom">
        <property name="CommonService" value="*************getTypeCodes called**************"/>
        <property name="Request Payload" expression="get-property('JSON_OBJECT')"/>
     </log>
     <property name="HTTP_METHOD" value="GET" scope="axis2" type="STRING"/>
     <property name="messageType" value="application/json" scope="axis2" type="STRING"/>
     <sequence key="oauthMediationService"/>
     <property name="uri.var.servicename" value="commonservice"/>
     <send>
          <endpoint>
           <address uri="http://localhost:8080/rest/commonservice/getTypeCodes" format="rest"/>
        </endpoint>
     </send>
     <log level="custom">
        <property name="getTypeCodeResponse" expression="$body"/>
     </log>
  </inSequence>
  <outSequence>
     <send/>
  </outSequence>

从上面的其余示例配置中,我正在端点中调用服务。调用端点后,我需要获取响应并根据条件将该响应发送到另一个端点。

4

2 回答 2

2

您可以使用以下配置调用重置服务并获得响应。在下面的示例中,我使用的是 HTTP 端点

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
       name="peoplePutProxy"
       transports="https,http"
       statistics="disable"
       trace="disable"
       startOnLoad="true">
    <target>
        <inSequence>
            <property name="HTTP_METHOD" value="GET" scope="axis2"/>
            <property name="messageType"
                      value="application/x-www-form-urlencoded"
                      scope="axis2"/>
            <send>
                <endpoint>
                    <http method="post"
                          uri-template="http://localhost:8080/rest/api/people?email={uri.var.email}&firstName={uri.var.fname}&lastName={uri.var.lname}"/>
                    <property name="uri.var.fname" value="dhar"/>
                    <property name="uri.var.email" value="kasun@gmail.com"/>
                    <property name="uri.var.lname" value="kasun"/>
                </endpoint>
            </send>
        </inSequence>
        <outSequence>
            <log level="full"/>
            <property name="messageType" value="text/xml" scope="axis2"/>
            <send/>
        </outSequence>
    </target>
    <description/>
</proxy> 

Http 端点是用户可以指定 URI 模板的地方,该模板可以动态填充 RESTful 服务调用的最终 URI。此外,用户可以操纵传出请求的 HTTP 方法。有关 http 端点的更多信息,请参阅 [1]

[1]。http://docs.wso2.org/display/ESB470/HTTP+Endpoint

于 2013-09-04T18:08:57.040 回答
-1

您的要求称为“服务链”。这篇博文解释了如何在 WSO2 ESB 中实现服务链。浏览该博客开头链接的另一篇文章以获得更好的理解。它们提供了服务链的完整示例。

基本上,您可以在发送中介中指定一个序列作为响应的接收者,如下所示。

 <send receive="RespSequence">
      <endpoint>
       <address uri="http://localhost:8080/rest/commonservice/getTypeCodes" format="rest"/>
    </endpoint>
 </send>

在这种情况下,调用端点的响应将被定向到RespSequence. 因此,在该序列中,您可以指定另一个端点。有关更多信息,请参阅Send Mediator 文档。使用Switch Mediator检查条件。

于 2013-09-04T12:06:10.650 回答