Creación del flujo de cliente de servicio web

Utilice las instrucciones siguientes para crear el flujo de clientes de servicio web a partir de una definición de WSDL existente. Debe haber creado satisfactoriamente el flujo de servicio web, utilizando el archivo OrderService.wsdl que ha importado, consulte Crear el flujo de mensajes y el conjunto de mensajes de servicio web.

  1. Añada un flujo de mensajes nuevo denominado WebServicesAsyncClientFlow.msgflow al proyecto AsyncWebServiceFlows.
  2. Añada los nodos descritos en la tabla siguiente al flujo de mensajes WebServiceAsyncClientFlow.
    Tipo de nodo Nombre de nodo
    MQInput MQWSInput
    MQOutput MQWSOutput
    Compute Compute Request, Format Response
    SOAPAsyncRequest SOAP Asynchronous Request
    SOAPAsyncResponse SOAP Asynchronous Response

  3. Conecte los nodos como se describe en la tabla siguiente, consulte Conectar nodos del flujo de mensajes en la documentación de WebSphere Message Broker.

    Nombre de nodo Terminal Conectar a este nodo
    MQWSInput Out Compute Request
    Compute Request Out1 SOAP Asynchronous Request
    SOAPAsyncResponse Out Format Response
    Format Response Out1 MQWSOutput

    El diagrama siguiente muestra una captura de pantalla del flujo de mensajes WebServicesAsyncClientFlow con los nodos conectados entre sí:

    Captura de pantalla del flujo de mensajes WebServicesAsyncClientFlow

  4. Arrastre OrderService.wsdl del proyecto AsyncWebServiceMessages al nodo SOAP Asynchronous Request. Puede encontrar el archivo OrderService.wsdl en la carpeta AsyncWebServicMessages > AsyncWebServicMessages > WSDL desplegable.
  5. En las propiedades Básicas para el nodo SOAP Asynchronous Request, entre SampleAsynchNodePair en el campo Identificador exclusivo.
  6. En las propiedades Básicas del nodo SOAP Asynchronous Response, entre SampleAsynchNodePair en el campo Identificador exclusivo para emparejar los dos nodos asíncronos.
  7. Establezca la cola para el nodo MQWSInput en WEBSERVICECLIENTIN y establezca la cola para el nodo MQWSOutput en WEBSERVICECLIENTOUT.
  8. Establezca las siguientes propiedades de Análisis de mensaje de entrada para el nodo MQWSInput.
    Dominio del mensaje XMLNSC
    Conjunto de mensajes SampleDriverMessages
  9. Efectúe una doble pulsación en el nodo Compute Request y pegue el siguiente módulo en el archivo 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. Efectúe una doble pulsación en el nodo Format Response y pegue el siguiente módulo en el archivo 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;


Ahora puede crear las colas para el ejemplo, consulte Crear las colas de WebSphere MQ.

Volver a crear el ejemplo de Consumidor asíncrono