创建 Web Service 客户机流

请按照以下指示信息,根据现有的 WSDL 定义创建 Web Service 客户机流。您必须已使用导入的 OrderService.wsdl 文件成功创建 Web Service 流,请参阅创建 Web Service 消息流和消息集

  1. 将名称为 WebServicesAsyncClientFlow.msgflow 的新消息流添加到 AsyncWebServiceFlows 项目。
  2. 将下表中描述的节点添加到 WebServiceAsyncClientFlow 消息流。
    节点类型 节点名
    MQInput MQWSInput
    MQOutput MQWSOutput
    Compute Compute Request,Format Response
    SOAPAsyncRequest SOAP Asynchronous Request
    SOAPAsyncResponse SOAP Asynchronous Response

  3. 按下表所述连接节点,请参阅 IBM Integration Bus 文档中的连接消息流节点

    节点名 终端 连接到此节点
    MQWSInput Out Compute Request
    Compute Request Out1 SOAP Asynchronous Request
    SOAPAsyncResponse Out Format Response
    Format Response Out1 MQWSOutput

    下图显示 WebServicesAsyncClientFlow 消息流以及连接在一起的节点的截屏:

    WebServicesAsyncClientFlow 消息流的截屏

  4. OrderService.wsdl 从 AsyncWebServiceMessages 项目拖动到 SOAP Asynchronous Request 节点。您可以在 AsyncWebServicMessages > AsyncWebServicMessages > 可部署的 WSDL 文件夹中找到 OrderService.wsdl 文件。
  5. 在 SOAP Asynchronous Request 节点的“基本”属性中,在“唯一标识”字段中输入 SampleAsynchNodePair
  6. 在 SOAP Asynchronous Response 节点的“基本”属性中,在“唯一标识”字段中输入 SampleAsynchNodePair 以使两个异步节点配对。
  7. 将 MQWSInput 节点的队列设置为 WEBSERVICECLIENTIN,将 MQWSOutput 节点的队列设置为 WEBSERVICECLIENTOUT
  8. 设置 MQWSInput 节点的以下“输入消息解析”属性。
    消息域 XMLNSC
    消息集 SampleDriverMessages
  9. 双击 Compute Request 节点,将以下模块粘贴到 ESQL 文件:
    DECLARE ns NAMESPACE 'http://www.acmeOrders.com/OrderService';
    
    CREATE COMPUTE MODULE WebServicesAsyncClientFlow_Compute
    	CREATE FUNCTION Main() RETURNS BOOLEAN
    	BEGIN
    		DECLARE inMsg REFERENCE TO InputRoot.XMLNSC.OrderMessage.localElement;
    		SET OutputRoot.SOAP.Body.ns:submitPORequest.partNo = inMsg.PartNumber;
    		DECLARE outMsg REFERENCE TO OutputRoot.SOAP.Body.ns:submitPORequest;
    		SET outMsg.partQuantity = inMsg.Quantity;
    		SET outMsg.personName.firstName = inMsg.FirstName;
    		SET outMsg.personName.lastName = inMsg.LastName;
    		SET outMsg.address.street = inMsg.Street;
    		SET outMsg.address.city = inMsg.City;
    		SET outMsg.address.zipCode = inMsg.ZipCode;
    		
    		RETURN TRUE;
    	END;
    END MODULE;
  10. 双击 Format Response 节点,将以下模块粘贴到 ESQL 文件:
    CREATE COMPUTE MODULE WebServicesAsyncClientFlow_Format
    	CREATE FUNCTION Main() RETURNS BOOLEAN
    	BEGIN
    		SET OutputRoot.Properties.MessageDomain   = 'XMLMSC';
    		SET OutputRoot.Properties.MessageSet   = 'SampleDriverMessages';
    		SET OutputRoot.Properties.MessageType   = 'OrderResponse'; 
    		
    		DECLARE inMsg REFERENCE TO InputRoot.SOAP.Body.ns:submitPOResponse;
    		SET OutputRoot.XMLNSC.OrderResponse.PartNo = inMsg.partNo;
    		DECLARE respMsg REFERENCE TO OutputRoot.XMLNSC.OrderResponse;
    		SET respMsg.PartQuantity = inMsg.partQuantity;
    		SET respMsg.AMT = inMsg.orderAmt;
    		SET respMsg.Status = inMsg.orderStatus;
    		
    		RETURN TRUE;
    	END;
    END MODULE;


现在,您可以创建样本队列,请参阅创建 WebSphere MQ 队列

返回到“构建‘异步使用者’样本”