Criando o Fluxo do Cliente de Serviço da Web

Use as instruções a seguir para criar o fluxo do cliente de serviço da Web a partir de uma definição de WSDL existente. Você deve ter criado com êxito o fluxo de serviços da Web usando o arquivo OrderService.wsdl importado; consulte Criando o Fluxo de Mensagens do Serviço da Web e o Conjunto de Mensagens.

  1. Inclua um novo fluxo de mensagens denominado WebServicesAsyncClientFlow.msgflow para o projeto AsyncWebServiceFlows.
  2. Inclua os nós descritos na tabela a seguir no fluxo de mensagens WebServiceAsyncClientFlow.
    Tipo de Nó Nome de Nó
    MQInput MQWSInput
    MQOutput MQWSOutput
    Compute Pedido de Processamento, Formatar Resposta
    SOAPAsyncRequest Pedido Assíncrono SOAP
    SOAPAsyncResponse Resposta Assíncrona SOAP

  3. Conecte os nós, conforme descrito na tabela a seguir, consulte Conectando os Nós do Fluxo de Mensagens na documentação do WebSphere Message Broker.

    Nome de Nó Terminal Conectar a esse Nó
    MQWSInput Out Pedido de Processamento
    Pedido de Processamento Out1 Pedido Assíncrono SOAP
    SOAPAsyncResponse Out Formatar Resposta
    Formatar Resposta Out1 MQWSOutput

    O diagrama a seguir mostra uma captura de tela do fluxo de mensagens WebServicesAsyncClientFlow com os nós conectados juntos:

    captura de tela do fluxo de mensagens WebServicesAsyncClientFlow

  4. Arraste OrderService.wsdl do projeto AsyncWebServiceMessages no nó de Pedido Assíncrono SOAP. É possível localizar o arquivo OrderService.wsdl na pasta AsyncWebServicMessages > AsyncWebServicMessages > WSDL Implementável.
  5. Nas propriedades Básicas para o nó de Pedido Assíncrono SOAP, entre SampleAsynchNodePair no campo Identificador Exclusivo.
  6. Nas propriedades Básicas para o nó de Resposta Assíncrono SOAP, entre SampleAsynchNodePair no campo Identificador Exclusivo para associar os dois nós assíncronos.
  7. Configure a fila para o nó MQWSInput para WEBSERVICECLIENTIN, configure a fila para o nó MQWSOutput para WEBSERVICECLIENTOUT.
  8. Configure as seguintes propriedades Análise da Mensagem de Entrada para o nó MQWSInput.
    Domínio de mensagem XMLNSC
    Conjunto de Mensagens SampleDriverMessages
  9. Dê um clique duplo no nó Compute Request, cole o seguinte módulo dentro do arquivo 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. Dê um clique duplo no nó Format Response, cole o seguinte módulo dentro do arquivo 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;


Agora, é possível criar as filas para a amostra, consulte Criando as Filas do WebSphere MQ.

Voltar para Construindo a Amostra Consumidor Assíncrono