Web-Service-Client-Nachrichtenfluss erstellen

Gehen Sie nach den folgenden Anweisungen vor, um den Web-Service-Client-Nachrichtenfluss aus einer vorhandenen WSDL-Definition zu erstellen. Der Web-Service-Nachrichtenfluss muss über die zuvor importierte Datei OrderService.wsdl erfolgreich erstellt worden sein (siehe Web-Service-Nachrichtenfluss und Nachrichtengruppe erstellen).

  1. Fügen Sie dem Projekt 'AsyncWebServiceFlows' einen neuen Nachrichtenfluss namens WebServicesAsyncClientFlow.msgflow hinzu.
  2. Fügen Sie dem Nachrichtenfluss 'WebServiceAsyncClientFlow' die in nachfolgender Tabelle beschriebenen Knoten hinzu.
    Knotentyp Knotenname
    MQInput MQWSInput
    MQOutput MQWSOutput
    Rechnen Compute Request (Rechenanforderung), Format Response (Formatantwort)
    SOAPAsyncRequest-Knoten SOAP Asynchronous Request (Asynchrone SOAP-Anforderung)
    SOAPAsyncResponse-Knoten SOAP Asynchronous Response (Asynchrone SOAP-Antwort)

  3. Verbinden Sie die Knoten wie in nachfolgender Tabelle beschrieben. Weitere Informationen erhalten Sie im Abschnitt Nachrichtenflussknoten verbinden der Dokumentation zu WebSphere Message Broker.

    Knotenname Terminal Mit diesem Knoten verbinden
    MQWSInput Ausgangsterminal Compute Request (Rechenanforderung)
    Compute Request (Rechenanforderung) Ausgangsterminal1 SOAP Asynchronous Request (Asynchrone SOAP-Anforderung)
    SOAPAsyncResponse-Knoten Ausgangsterminal Format Response (Formatantwort)
    Format Response (Formatantwort) Ausgangsterminal1 MQWSOutput

    Das nachfolgende Diagramm zeigt einen Screenshot des Nachrichtenflusses 'WebServicesAsyncClientFlow' mit miteinander verbundenen Knoten:

    Screenshot des Nachrichtenflusses 'WebServicesAsyncClientFlow'

  4. Ziehen Sie die Datei OrderService.wsdl aus dem Projekt 'AsyncWebServiceMessages' in den Knoten 'SOAP Asynchronous Request'. Die Datei OrderService.wsdl finden Sie im Ordner AsyncWebServicMessages > AsyncWebServicMessages > Implementierbare WSDL.
  5. Geben Sie in den Eigenschaften zur Grundeinstellung des SOAP Asynchronous Request-Knotens im Feld Eindeutige ID den Eintrag SampleAsynchNodePair ein.
  6. Geben Sie in den Eigenschaften zur Grundeinstellung des SOAP Asynchronous Response-Knotens im Feld Eindeutige ID den Eintrag SampleAsynchNodePair ein, um die beiden asynchronen Knoten zu paaren.
  7. Setzen Sie die Warteschlange für den MQWSInput-Knoten auf WEBSERVICECLIENTIN und die Warteschlange für den MQWSOutput-Knoten auf WEBSERVICECLIENTOUT.
  8. Legen Sie die folgenden Eigenschaften zur Syntaxanalyse der Eingabenachricht für den MQWSInput-Knoten fest.
    Nachrichtendomäne XMLNSC
    Nachrichtengruppe SampleDriverMessages
  9. Klicken Sie doppelt auf den 'Compute Request'-Knoten (Rechenanforderung) und fügen Sie das folgende Modul in die ESQL-Datei ein:
    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. Klicken Sie doppelt auf den 'Format Response'-Knoten und fügen Sie das folgende Modul in die ESQL-Datei ein:
    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;


Jetzt können Sie die Warteschlangen für den Mustercode erstellen. Weitere Informationen erhalten Sie im Abschnitt WebSphere MQ-Warteschlangen erstellen.

Zurück zur Erstellung des Mustercodes 'Asynchronous Consumer'