【问题标题】:How to send to multiple endpoints in wso2esb如何发送到 wso2esb 中的多个端点
【发布时间】:2014-12-17 21:32:24
【问题描述】:

我正在使用 wso2esb-4.8.1, 我希望在回复客户后记录交易详情。 为此,我编写了代理和序列,但 wso2esb-4.8.1 不支持发送调解器,因为我希望对每个端点使用负载平衡,因为相同的逻辑在 CallOUT 调解器中使用 URL 选项而不是地址端点.

代理

<proxy xmlns="http://ws.apache.org/ns/synapse" name="Test_Proxy" transports="https http" startOnLoad="true" trace="disable">
<description/>
<target>
<inSequence onError="FaultSeq">
<property name="FORCE_ERROR_ON_SOAP_FAULT" value="true" scope="default" type="STRING"/>
<log>
<property xmlns:ns="http://org.apache.synapse/xsd" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" name="ProxyInRequest" 
expression="/soapenv:Envelope"/>
</log>
<xquery key="ProxyRequestTransformation">
<variable xmlns:ns="http://org.apache.synapse/xsd" name="Operation" expression="//Operation/text()" type="STRING"/>
<variable xmlns:ns="http://org.apache.synapse/xsd" name="ServiceNameSpace" expression="//ServiceNameSpace/text()" type="STRING"/>
<variable name="Payload" type="DOCUMENT_ELEMENT"/>
<variable xmlns:ns="http://org.apache.synapse/xsd" name="ServiceName" expression="//Service/text()" type="STRING"/>
</xquery>
<send>
<endpoint>
<address uri="http://localhost:8081/middleware/services/test1" format="soap11"/>
</endpoint>
</send>
</inSequence>
<outSequence onError="FaultSeq">
<property name="FORCE_ERROR_ON_SOAP_FAULT" value="true"/>
<property action="set" name="RESPONSE" scope="default" type="STRING" value="true"/>
<send/>
<sequence key="AuditSeq"/>
</outSequence>
</target>
<publishWSDL key="EaiEnvelope"/>
</proxy>

在上面的代理中,我在尝试在同一流程中进行审核之后使用了默认发送调解器,我的客户正在收到回复,但细节没有审核,甚至没有收到任何错误。

我的序列

<sequence xmlns="http://ws.apache.org/ns/synapse" name="AuditSeq"> <property name="FORCE_ERROR_ON_SOAP_FAULT" value="true" scope="default" type="STRING"/>
<property xmlns:ns="http://org.apache.synapse/xsd" name="RESULT_CODE" expression="get-property('ResultCode')" scope="default" type="STRING"/>
<property xmlns:ns="http://org.apache.synapse/xsd" name="RESULT_MESSAGE" expression="get-property('ResultMessage')" scope="default" type="STRING"/>
<property xmlns:ns="http://org.apache.synapse/xsd" name="REFERENCE_ID" expression="get-property('ReferenceID')" scope="default" type="STRING"/>
<property xmlns:ns="http://org.apache.synapse/xsd" name="FAULT_DETAILS" expression="concat(get-property('ERROR_CODE'),get-property('ERROR_MESSAGE'))" scope="default" type="STRING"/>
<payloadFactory media-type="xml">
<format>
<open:processRequest xmlns:open="http://www.openuri.org/">
<aud:Auditor xmlns:aud="http://jhm.kkk.fff/Auditor">
<aud:Request>
<aud:Operation_Name>processRequest</aud:Operation_Name>
<aud:Auditor_InputData>
<aud:Result_Code>$1</aud:Result_Code>
<aud:Result_Message>$2</aud:Result_Message>
<aud:Reference_Id>$3</aud:Reference_Id>
</aud:Auditor_InputData>
</aud:Request>
</aud:Auditor>
</open:processRequest>
</format>
<args>
<arg evaluator="xml" expression="get-property('RESULT_CODE')"/>
<arg evaluator="xml" expression="get-property('RESULT_MESSAGE')"/>
<arg evaluator="xml" expression="get-property('REFERENCE_ID')"/>
</args>
</payloadFactory>
<header name="Action" scope="default" value="http://www.openuri.org/processRequest"/>
<send>
<endpoint>
<address uri="http://localhost:8081/middleware/services/AuditService" format="soap11"/>
</endpoint>
</send>
<log>
<property name="aftersend" value="message going out or not"/>
</log>
</sequence>

上面的发送调解器不起作用。但是发送后我的日志正在打印。 如果我用 CallOut URL 选项替换发送调解器,它工作正常。

<callout serviceURL="http:///localhost:8081/middleware/services/AuditService">
<source type="envelope"/>
<target key="IsThisResponse"/>
</callout>

在上面我们无法使用负载平衡。为此,我尝试发送调解器。 有什么办法可以做到这一点。 我认为 wso2esb-4.8.1 已经稳定,但它也有缺点。 提前致谢。

【问题讨论】:

    标签: wso2 wso2esb wso2carbon synapse


    【解决方案1】:

    请尝试按照此处所述更改代理中的发送调解器,这可能会对您有所帮助

    <send receive="AuditSeq">
      <endpoint>
      <address uri="http://localhost:8081/middleware/services/test1" format="soap11"/>
      </endpoint>
    </send> 
    

    【讨论】:

    • 感谢您的回复。但根据您的指导,它将进入审核顺序,但在此之前我想将响应发送回客户。您告诉它不会向客户发送响应,它将收到之后在审核中回复回复
    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2015-01-30
    • 2018-09-23
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多