Mustercode 'File Output' ausführen

Sobald Sie den Mustercode importiert und implementiert haben, können Sie ihn ausführen. Beachten Sie dabei die Anweisungen unter Mustercode ausführen.

Es werden als Beispiel eine Eingabetestnachricht und die entsprechende erwartete Ausgabenachricht (eine stammt vom HTTPAntwortknoten, die andere vom FileOutput-Knoten) bereitgestellt, damit Sie überprüfen können, ob das Beispiel erfolgreich war.

Sollten bei der Ausführung des Mustercodes Probleme auftreten, lesen Sie den Abschnitt Probleme bei der Ausführung von Mustercodes beheben in der WebSphere Message Broker-Dokumentation.

Eingabetestnachricht

Die Testnachricht, die für die Ausführung dieses Mustercodes verwendet wird, ist eine SOAP-Nachricht, die eine Verkaufsnachricht darstellt. Die Nachricht basiert auf folgendem Format:

<?xml version="1.0" encoding="UTF-8"?>
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:samp="http://www.samplemessage.broker.hursley.ibm.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<samp:SaleListMessage>
<SaleEnvelope>
<Header>
<SaleListCount>1</SaleListCount>
</Header>
<SaleList>
<Invoice>
<Initial>K</Initial>
<Initial>A</Initial>
<Surname>Braithwaite</Surname>
<Item>
<Code>00</Code>
<Code>01</Code>
<Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>00.30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code>
<Code>03</Code>
<Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>00.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>00.50</Balance>
<Currency>Sterling</Currency>
</Invoice>
<Invoice>
<Initial>T</Initial>
<Initial>J</Initial>
<Surname>Dunnwin</Surname>
<Item>
<Code>04</Code>
<Code>05</Code>
<Code>01</Code>
<Description>The Origin of Species</Description>
<Category>Books and Media</Category>
<Price>22.34</Price>
<Quantity>02</Quantity>
</Item>
<Item>
<Code>06</Code>
<Code>07</Code>
<Code>01</Code>
<Description>Microscope</Description>
<Category>Miscellaneous</Category>
<Price>36.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>81.84</Balance>
<Currency>Euros</Currency>
</Invoice>
</SaleList>
<Trailer>
<CompletionTime>12.00.00</CompletionTime>
</Trailer>
</SaleEnvelope>
</samp:SaleListMessage>
</soap:Body>
</soap:Envelope>

Mustercode ausführen

Für diesen Mustercode wird der Nachrichtenfluss 'FileOutputNodeSampleFlow' verwendet.

So führen Sie den Mustercode aus:

  1. Erweitern Sie in der Ansicht 'Brokerentwicklung' das FileOutputNodeSampleFlowProject.
  2. Klicken Sie doppelt auf FileOutputNodeSample_InputMessage.mbtest, um die Nachricht im Testclient zu öffnen.
  3. Klicken Sie im Fenster 'Ausführliche Eigenschaften' auf Nachricht senden und klicken Sie dann im Fenster 'Implementierungsstelle' auf Fertigstellen (zu diesem Zeitpunkt erfolgt keine Implementierung). Es wird eine Nachricht an die URL gesendet, die vom HTTPReply-Knoten überwacht wird. Die URL lautet http://localhost:7080/FileOutputNodeSample. Der Nachrichtenfluss empfängt die SOAP-Nachricht über HTTP und aktualisiert die Beschreibung und den Preis für den letzten Artikel in der Verkaufsrechnung. Anschließend wird die Nachricht in eine Datei geschrieben und über HTTP wird eine Antwort zurückgeschickt.
  4. So überprüfen Sie, ob die aktualisierte Nachricht erfolgreich über HTTP zurückgesendet wurde:
    1. Rufen Sie die Antwortnachricht im Fenster 'Ausführliche Eigenschaften' auf. Nutzen Sie hierfür die XML-Strukturanzeigefunktion oder die Quellenanzeigefunktion.
    2. Vergleichen Sie diese Nachricht mit der weiter unten in diesem Abschnitt beschriebenen erwarteten Ausgabenachricht des HTTPReply-Knotens.
  5. So überprüfen Sie, ob die aktualisierte Nachricht in eine Datei im angegebenen Verzeichnis ausgegeben wurde:
    1. Rufen Sie das Dateisystem auf und überprüfen Sie das entsprechende Verzeichnis. Beispiel:
      • Überprüfen Sie unter Windows folgendes Verzeichnis: %MQSI_FILENODES_ROOT_DIRECTORY%\FileOutputNodeSample
      • Überprüfen Sie unter Linux folgendes Verzeichnis: $MQSI_FILENODES_ROOT_DIRECTORY/FileOutputNodeSample
    2. Öffnen Sie die Datei FileOutputNodeSample_OutputMessage.xml in einem Texteditor Ihrer Wahl.
    3. Vergleichen Sie diese Datei mit der weiter unten in diesem Abschnitt beschriebenen erwarteten Ausgabenachricht des FileOutput-Knotens.

Wenn alle vorherigen Schritte erfolgreich ausgeführt wurden, ist der Mustercode damit beendet. Sie können die Knoten im Nachrichtenfluss 'FileOutputNodeSampleFlow' anzeigen, um nachzuvollziehen, wie die Ergebnisse erzielt wurden.

Erwartete Ausgabenachricht vom HTTPReply-Knoten

Die Ausgabenachricht vom HTTPReply-Knoten ähnelt der Eingabenachricht, wurde jedoch auf drei Arten aktualisiert:

  1. Das erste Element <?xml version="1.0" encoding="UTF-8"?> wurde aus der Nachricht entfernt.
  2. Die Beschreibung und der Preis des letzten Artikels wurden aktualisiert. Die Beschreibung wurde in "Deluxe Microscope" geändert und der Preis wurde auf den Wert "44.00" aktualisiert.
  3. Das Element <samp:SaleListMessage> mit Namensbereichen wurde durch <samp:SaleListReplyMessage> ersetzt.

Der folgende Code stellt die erwartete Nachricht dar. Sie wurde zur besseren Lesbarkeit mit Umbrüchen formatiert.

<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:samp="http://www.samplemessage.broker.hursley.ibm.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<samp:SaleListReplyMessage>
<SaleEnvelope>
<Header>
<SaleListCount>1</SaleListCount>
</Header>
<SaleList>
<Invoice>
<Initial>K</Initial>
<Initial>A</Initial>
<Surname>Braithwaite</Surname>
<Item>
<Code>00</Code>
<Code>01</Code>
<Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>00.30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code>
<Code>03</Code>
<Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>00.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>00.50</Balance>
<Currency>Sterling</Currency>
</Invoice>
<Invoice>
<Initial>T</Initial>
<Initial>J</Initial>
<Surname>Dunnwin</Surname>
<Item>
<Code>04</Code>
<Code>05</Code>
<Code>01</Code>
<Description>The Origin of Species</Description>
<Category>Books and Media</Category>
<Price>22.34</Price>
<Quantity>02</Quantity>
</Item>
<Item>
<Code>06</Code>
<Code>07</Code>
<Code>01</Code>
<Description>Deluxe Microscope</Description>
<Category>Miscellaneous</Category>
<Price>44.00</Price>
<Quantity>01</Quantity>
</Item>
<Balance>81.84</Balance>
<Currency>Euros</Currency>
</Invoice>
</SaleList>
<Trailer>
<CompletionTime>12.00.00</CompletionTime>
</Trailer>
</SaleEnvelope>
</samp:SaleListReplyMessage>
</soap:Body>
</soap:Envelope>

Erwartete Ausgabenachricht vom FileOutput-Knoten

Die Ausgabenachricht vom FileOutput-Knoten ähnelt der Eingabenachricht, wurde jedoch auf drei Arten aktualisiert:

  1. Die SOAP-Rahmenanweisung wurde aus der Nachricht entfernt.
  2. Die Beschreibung und der Preis des letzten Artikels wurden aktualisiert. Die Beschreibung wurde in "Deluxe Microscope" geändert und der Preis wurde auf den Wert "44.00" aktualisiert.
  3. Das Element <samp:SaleListMessage> mit Namensbereichen wurde durch <NS1:SaleListReplyMessage xmlns:NS1="http://www.samplemessage.broker.hursley.ibm.com"> ersetzt.

Der folgende Code stellt die erwartete Nachricht dar. Sie wurde zur besseren Lesbarkeit mit Umbrüchen formatiert.

<?xml version="1.0" encoding="UTF-8"?>
<NS1:SaleListReplyMessage xmlns:NS1="http://www.samplemessage.broker.hursley.ibm.com">
<SaleEnvelope>
<Header>
<SaleListCount>1</SaleListCount>
</Header>
<SaleList>
<Invoice>
<Initial>K</Initial>
<Initial>A</Initial>
<Surname>Braithwaite</Surname>
<Item>
<Code>00</Code>
<Code>01</Code>
<Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>00.30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code>
<Code>03</Code>
<Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>00.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>00.50</Balance>
<Currency>Sterling</Currency>
</Invoice>
<Invoice>
<Initial>T</Initial>
<Initial>J</Initial>
<Surname>Dunnwin</Surname>
<Item>
<Code>04</Code>
<Code>05</Code>
<Code>01</Code>
<Description>The Origin of Species</Description>
<Category>Books and Media</Category>
<Price>22.34</Price>
<Quantity>02</Quantity>
</Item>
<Item>
<Code>06</Code>
<Code>07</Code>
<Code>01</Code>
<Description>Deluxe Microscope</Description>
<Category>Miscellaneous</Category>
<Price>44.00</Price>
<Quantity>01</Quantity>
</Item>
<Balance>81.84</Balance>
<Currency>Euros</Currency>
</Invoice>
</SaleList>
<Trailer>
<CompletionTime>12.00.00</CompletionTime>
</Trailer>
</SaleEnvelope>
</NS1:SaleListReplyMessage>

Zurück zum Beginn des Mustercodes