Terry.Li-彬

          虛其心,可解天下之問;專其心,可治天下之學;靜其心,可悟天下之理;恒其心,可成天下之業。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks
          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(19)

          隨筆分類(107)

          隨筆檔案(141)

          文章分類(284)

          文章檔案(342)

          相冊

          收藏夾(58)

          家裝

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          Using the Web Service Wrapper

          The WebServiceWrapperComponent class allows you to send the result of a web service call to another endpoint. The web service call is performed within WebServiceWrapperComponent, providing the following advantages:

          • You can set any type of router on inbound and outbound.
          • Unlike the chaining router, it can send more than one HTTP request at a time
          • The URL for the web service call can be changed at run-time by sending the URL with the message

          Configuring the Web Service Wrapper

          To use the web service wrapper, you specify the <wrapper-component> configuration element. The following table describes the attributes you can set for this element. These attributes are described in more detail in the examples that follow.

          Attribute Description Required?
          address Specifies the URL of the web service to call Yes, unless addressFromMessage is set to true
          addressFromMessage (default is false) Specifies that the URL of the web service will be obtained from the message itself Not required if address is set
          wrapperProperties The SOAP document style, expressed as a map of two properties: style, which can be set to RPC (the default), Document, Message, or Wrapped, and use, which can be Encoded or Literal. No
          <soap-method> A SOAP method to call (see Configuring SOAP Methods below) No

          The web service wrapper is generic and can be used with any type of web service stack supported by Mule, including Axis and CXF. The examples below show synchronous use cases, but the web service wrapper can also support an asynchronous use case like the loan broker example.

          Example Configuration Using the CXF Transport

          Consider the following example. The web service wrapper is configured as a Mule component, accepting messages from a VM endpoint. A call must be made to a web service on the URL cxf:http://localhost:65081/services/TestUMO?method=onReceive and the result must be sent to the outbound endpoint vm://testout.

          The inbound and outbound endpoints are configured in the usual way. The address is set as an attribute on the component, specifying the web service URL that you want to call.

          								<cxf:connector name="cxf" defaultFrontend="simple" />
          								<model name="Sample">
          								<service name="WebServiceSample">
          								<inbound>
          								<vm:inbound-endpoint path="testin" />
          								</inbound>
          								<cxf:wrapper-component address="http://localhost:65081/services/TestUMO?method=onReceive"/>
          								<outbound>
          								<pass-through-router>
          								<outbound-endpoint address="vm://testout"/>
          								</pass-through-router>
          								</outbound>
          								</service>
          						

          Example Configuration Using the addressFromMessage Property

          The "address" property is ideal to use when the web service URL for the web service is known at configuration time. However, if this URL is either not known or else needs to be changed at run-time, the "address" property can be omitted and the "adddressFromMessage" property can be set to true. The following example shows this configuration:

          								<service name = "WebServiceSample2">
          								<inbound>
          								<vm:inbound-endpoint path = "testin2"/>
          								</inbound>
          								<cxf:wrapper-component addressFromMessage = "true"/>
          								</service>
          						

          The URL must be set on the message with the property name "ws.service.url".

          Configuring SOAP Methods

          CXF endpoints are fairly easy to configure, whereas Axis needs some further configuration to set SOAP methods. You can set a SOAP method using the <soap-method> element as shown below:

          								<service name = "WebServiceSample3">
          								<inbound>
          								<vm:inbound-endpoint path = "queue.in" connector-ref = "VMQueue"/>
          								</inbound>
          								<axis:wrapper-component address = "http://localhost:62088/axis/Calculator?method=add" style = "WRAPPED" use = "LITERAL">
          								<axis:soap-method method = "qname{add:http://muleumo.org/Calc}">
          								<axis:soap-parameter parameter = "Number1" type = "int" mode = "IN"/>
          								<axis:soap-parameter parameter = "Number2" type = "int" mode = "IN"/>
          								<axis:soap-return type = "int"/>
          								</axis:soap-method>
          								</axis:wrapper-component>
          								<outbound>
          								<pass-through-router>
          								<vm:outbound-endpoint path = "queue.out" connector-ref = "VMQueue"/>
          								</pass-through-router>
          								</outbound>
          								</service>
          						
          posted on 2009-09-19 21:53 禮物 閱讀(475) 評論(0)  編輯  收藏 所屬分類: AxisESBESB
          主站蜘蛛池模板: 巍山| 麻城市| 清新县| 凌云县| 金门县| 卫辉市| 曲麻莱县| 犍为县| 绍兴县| 五峰| 牙克石市| 神木县| 紫阳县| 潞西市| 青河县| 榆社县| 徐州市| 中阳县| 辽阳市| 清苑县| 博湖县| 年辖:市辖区| 开远市| 西吉县| 东山县| 丰台区| 泸西县| 莆田市| 西乌珠穆沁旗| 宝兴县| 汪清县| 古浪县| 蓬莱市| 青川县| 乌兰浩特市| 金堂县| 军事| 临漳县| 广宗县| 巴林右旗| 牡丹江市|