首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WSO2 ESB如何在EndPoint中传递自定义中介的消息

WSO2 ESB如何在EndPoint中传递自定义中介的消息
EN

Stack Overflow用户
提问于 2014-10-13 08:17:08
回答 2查看 1.1K关注 0票数 0

日安!

我最近才开始研究ESB总线。我需要用内容-Type:application/x form-urlencoded在HTTP请求中转换传入的SOAP消息。

我已经创建了一个代理服务,即Java中的Custom 1,转换后的消息,如何将它传递给端点并在Custom 2中获得答案?

在图片中,我画了一个如何转换消息的例子。

EN

回答 2

Stack Overflow用户

发布于 2014-10-13 09:27:38

您不需要编写自定义中介程序,您可以将SOAP转换为rest调用,使用rest服务示例等待2个参数,如

param1=value1¶m2=value2

代码语言:javascript
运行
复制
<!-- prepare data for org.apache.axis2.transport.http.XFormURLEncodedFormatter message formatter -->
<payloadFactory media-type="xml">
    <format> 
        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
            <soapenv:Body> 
                <root> 
                    <param1>$1</param1> 
                    <param2>$2</param2> 
                </root> 
            </soapenv:Body> 
        </soapenv:Envelope> 
    </format> 
    <args> 
        <arg evaluator="xml" expression="$body/node1/node11/text()"/> 
        <arg evaluator="xml" expression="$body/node1/node12/text()"/> 
   </args> 
</payloadFactory>  

<!-- set output format -->

<property name="messageType" value="application/x-www-form-urlencoded" scope="axis2" type="STRING"/> 
<property name="DISABLE_CHUNKING" value="true" scope="axis2" type="STRING"/> 

<!-- call the REST endpoint with synch call : response is received in this sequence -->

<call> 
   <endpoint key="conf:endpoints/MyServiceEndpoint.xml"/> 
</call> 

<!-- the response is here, transform it has needed -->
<xslt key="myxsl"/>

<!-- send this response to the client -->
<property name="messageType" value="application/soap+xml" scope="axis2" type="STRING"/>  
<!-- or test/xml and in this case, don't forget to specify a SOAP Action, below, a sample to specify a blank soapAction : -->
<header name="Action" value="&quot;&quot;"/>
<send/>

示例端点conf (使用此示例,需要按顺序定义属性uri.var.ServiceURL ):

代码语言:javascript
运行
复制
<endpoint>
  <http method="POST" uri-template="{uri.var.ServiceURL}/Path/2011-10-01"/>
</endpoint>

但是,如果您确实需要自定义中介程序,只需用它们替换payloadFactory和xslt中介程序即可。

票数 0
EN

Stack Overflow用户

发布于 2014-10-13 12:36:23

谢谢您的回复,我仍然需要编写自定义中介,这只是一个非常复杂的转换消息,我将给出一个如何转换消息的示例。

  1. 我的代理服务中的SOAP消息,发送custrom中介

http://schemas.xmlsoap.org/soap/envelope/“xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance”xmlns:xsd="">http://www.w3.org/2001/XMLSchema"> Field1 11 Field2 22

  1. 调停人转变的结果

0000035401SM0000009700009700000121 iQBRAwkBAAAD3j2r2NwBAeevAf4nvAG4rGAyAePHkyVKTt7wffzURhOckd3ctgmG yQkKWkXh3CLpsbrExsllVUBlO6ih8qHozk2uttXApzHXQXoO 0000099000000000开始// FIELD1=11 // Soap数据FIELD2=22 // Soap数据结束开始签名=+pch =+pch END签名

  1. 对HTTP服务器的请求

POST /cgi/es/es_pay_check.cgi HTTP/1.0内容-类型:application/x form-urlencoded内容-长度: 498 inputmessage=0000035401SM000000970000009700000121%0D%0Aapi99+ +++++++++++00000990%0D%0A++++++++++++++++++++00000000%0ABEGIN%0D% 0FIELD1%11%0FIELD2%220AEND%0D%0ABEGIN+SIGNATURE%0AiQBRAwkBAABCiUs 00dQBATG5AgDHdZ6RYHykL46QBaAvnHYaY4p0pDjgjO4K1Iyj%0D%0AfSBSvCRpS%2 F0EYO9NspuyLeANEQQkkGE%2F37gUxiPqzAgStXjpsAHH%0D%0A%3DvSgb%0AEND+签名

  1. 来自HTTP的响应,传入custrom中介以转换为SOAP

0000030301SM00000046004600121 0J000500064182 00000000开始iQBRAwkBAAD6tj1BJ10BAYKxAfsHlQsEFnO2k6ry++W8O8AiJuv4gT+ZVCfZHsKk c0CbZpP/W3vkljG3xNzMLiqjbwkNuIdwR9Dq7gHmH+ZQMhbT DATE=04.10.2014 12:34:12 ERROR=0 ERRMSG= FIELD3=33 FIELD4=44 FIELD5=55 END BEGIN签名

  1. 代理服务中的结果。

">http://schemas.xmlsoap.org/soap/envelope/"> Field3 33 Field4 44 Field5 55好的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26335550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档