Verwenden Sie den HTTPInput-Knoten, um Web-Service-Anforderungen für die Verarbeitung durch einen Nachrichtenfluss zu empfangen.
Dieses Thema ist in folgende Abschnitte eingeteilt:
Bei der Verwendung des HTTPInput-Knotens mit dem HTTPReply- und HTTPRequest-Knoten kann der Broker als Zwischenstation für Web-Services fungieren, und Web-Service-Anforderungen können auf die gleiche Weise umgewandelt und weitergeleitet werden wie andere von WebSphere Nachrichtenbroker unterstützte Nachrichtenformate. Web-Service-Anforderungen können im HTTP-Standardformat (1.0 oder 1.1) oder im HTTP over SSL-Format (HTTPS) empfangen werden. Sie können die Eigenschaft HTTPS verwenden so festlegen, dass Sie die Verarbeitung von HTTP- oder HTTPS-Anfragen auswählen können.
Wenn Sie den HTTPInput-Knoten in einen Nachrichtenfluss einfügen, müssen Sie entweder einen HTTPReply-Knoten in demselben Fluss einfügen oder die Nachricht an einen anderen Fluss übergeben, der einen HTTPReply-Knoten enthält (beispielsweise über einen MQOutput-Knoten an einen zweiten Fluss, der mit einem MQInput-Knoten beginnt). Im zweiten Fall (der Anforderung von und Antwort an) werden die Clients von der Anforderungs-ID koordiniert, die in der lokalen Umgebung gespeichert ist.
Wenn der HTTPInput-Knoten eine Nachricht von einem Web-Service-Client erhält, startet er die entsprechenden Parser, um die Header und den Hauptteil der Nachricht zu interpretieren und die Nachrichtenbaumstruktur zu erzeugen, die intern vom Nachrichtenfluss verwendet wird. Der Knoten erstellt eine eindeutige Kennung für die Eingabenachricht und speichert diese unter LocalEnvironment.Destination.HTTP.RequestIdentifer als binären Bereich mit 24 Bytes in der Baumstruktur der lokalen Umgebung. Dieser Wert wird vom HTTPReply-Knoten verwendet und darf auf keine Weise geändert werden.
HTTP-Nachrichten sind niemals persistent und haben keine bestimmte Reihenfolge.
HTTP-Nachrichten sind nicht transaktionsorientiert. Wenn der Nachrichtenfluss jedoch mit einer Datenbank oder einer anderen externen Ressource, z. B. einer WebSphere MQ-Warteschlange, interagiert, werden diese Interaktionen in einer Transaktion ausgeführt. Der HTTPInput-Knoten bietet eine COMMIT-Operation (Festschreiben) oder ROLLBACK-Operation (Zurücksetzen) an. Dies ist abhängig davon, wie der Nachrichtenfluss beendet wurde, und wie er für die Fehlerbehandlung konfiguriert ist (z. B. wie die Fehlerterminals verbunden sind). Wenn der Nachrichtenfluss von diesem Knoten zurückgesetzt wird, wird eine Fehlernachricht generiert und an den Client ausgegeben. Das Format des Fehlers wird in der Eigenschaft Falsches Format definiert.
Falls in diesem Nachrichtenfluss eine Ausnahmebedingung eintritt und diese nicht abgefangen, sondern an diesen Knoten zurückgegeben wird, erstellt der Knoten eine Fehlerantwort an den Client. Dieser Fehler wird von der Ausnahmebedingung abgeleitet und das Format des Fehlers wird durch die Eigenschaft Falsches Format definiert.
Wenn Sie einen Sendeknoten in einen Nachrichtenfluss einschließen, der mit einem HTTPInput-Knoten beginnt, können Sie einen beliebigen unterstützten Sendeknoten (einschließlich benutzerdefinierter Sendeknoten) verwenden. Sie können einen Nachrichtenfluss erstellen, der Nachrichten von Web-Service-Clients empfängt und Nachrichten für Clients generiert, die alle unterstützten Transportmethoden zur Verbindung mit dem Broker verwenden. Sie können den Nachrichtenfluss so konfigurieren, dass der Broker auf Anforderung alle erforderlichen Konvertierungen bereitstellt.
Wenn Sie einen Nachrichtenfluss erstellen, der als untergeordneter Nachrichtenfluss implementiert werden soll, können Sie keinen Standardempfangsknoten verwenden. Sie müssen einen Input-Knoten als ersten Knoten verwenden, um ein Eingangsterminal für den untergeordneten Nachrichtenfluss zu erstellen.
Empfängt Ihr Nachrichtenfluss keine Web-Service-Anforderungen, können Sie einen der anderen Empfangsknoten verwenden.
Der HTTPInput-Knoten befindet sich im HTTP-Fach der Palette und wird in Workbench durch folgendes Symbol dargestellt:
Sie können den HTTPInput-Knoten in jedem Nachrichtenfluss verwenden, der HTTP- oder HTTPS-Nachrichten annimmt. Das häufigste Beispiel ist ein Nachrichtenfluss, durch den ein Web-Service implementiert wird.
Weitere Informationen zu Web-Service-Anwendungen finden Sie unter Mit Web-Service-Anwendungen arbeiten.
Der HTTPInput-Knoten unterstützt HTTP POST und HTTP GET. Weitere Informationen zum Aktivieren von HTTP GET finden Sie unter HTTPRequest-Knoten.
/Joe /Joe/Mary /Joe/* /*Dann wird bei diesem Format die Nachricht empfangen, wenn keiner der anderen Knoten mit dieser Anforderung übereinstimmt. Mit der Anforderung http://localhost:777/Joe/Sally stimmt also Joe/* überein. Wenn die Anforderung mit keinem URL-Selektor übereinstimmt und kein Empfangsknoten mit /* festgelegt wurde, wird vom HTTPInput-Knoten eine Antwort an den Sender geschickt. Beispiel:
<html> <head> <title>WebSphere MQ Integrator error report </title> </head> <body> <h1>HTTP Status 404 - Resource Not Found</h1> URI /soap does not map to any message flow in broker VCP1BRK <h3>WebSphere MQ Integrator 500</h3> </body> </html>
Sie können eine URL der Form /* verwenden, um alle Anforderungen abzufangen, die nicht mit den URLs in den HTTPInput-Knoten übereinstimmen. Dies ermöglicht Ihnen, eine Antwort zu senden und andere geeignete Maßnahmen zu ergreifen.
Der Broker muss zur
Verwendung eines Ports konfiguriert werden (der Standardport lautet
7080). Das HTTP-Empfangsprogramm wird vom
Broker gestartet, wenn ein Nachrichtenfluss, der HTTP-Knoten oder oder
Web-Services-Unterstützung enthält, gestartet wurde.
Bei Eingang einer Anforderung sendet der Listener diese über eine WebSphere MQ-Nachricht an den HTTPInput-Knoten.
Das HTTP-Empfangsprogramm ist an den Internet Protocol Version 6 (IPv6)- und Internet Protocol Version 4 (IPv4)-Adressen, falls sie vom Betriebssystem unterstützt werden. Zur Aktivierung des IPv6-Empfangs auf Windows- und HP-UX-Plattformen müssen Sie die Umgebungsvariable _JAVA_OPTIONS auf -Djava.net.preferIPv4Stack=false setzen.
Mit dem Befehl mqsichangetrace können Sie Traceinformationen für das HTTP-Empfangsprogramm sammeln. Verwenden Sie zur Verarbeitung des Protokolls den Befehl mqsireadlog mit httplistener als Wert für qualifier.
Der HTTPInput-Knoten leitet jede Nachricht, die er erfolgreich empfängt, an das Ausgangsterminal weiter. Schlägt die Nachrichtenauswertung fehl, wird die Nachricht an das Fehlerterminal weitergeleitet. Sie können Knoten mit diesem Terminal verbinden, um diese Situation zu handhaben. Wenn keine Verbindung zum Fehlerterminal besteht, wird die Nachricht gelöscht, die maximale Wartezeit für den Client läuft ab, und das TCP/IP-Empfangsprogramm meldet dem Client einen Fehler. Es gibt keine anderen Situationen, in denen die Nachricht an das Fehlerterminal weitergeleitet wird.
Wenn die Nachricht von diesem Knoten abgefangen wird, nachdem eine Ausnahmebedingung weiter vorne im Nachrichtenfluss ausgelöst wurde, wird die Nachricht an das Catch-Terminal weitergeleitet. Wenn keine Verbindung zum Catch-Terminal besteht, wird die Nachricht gelöscht, die maximale Wartezeit für den Client läuft ab, und das TCP/IP-Empfangsprogramm meldet dem Client einen Fehler.
Nachdem Sie eine Instanz des HTTPInput-Knotens in einen Nachrichtenfluss eingereiht haben, können Sie den Knoten konfigurieren; siehe Nachrichtenflussknoten konfigurieren. Die Knoteneigenschaften werden in der Eigenschaftenansicht angezeigt. Klicken Sie zum Anzeigen der Knoteneigenschaften im Eigenschaftendialog entweder doppelt auf den Knoten, oder klicken Sie mit der rechten Maustaste und anschließend auf Eigenschaften.
In der folgenden Tabelle werden die Terminals des HTTPInput-Knotens beschrieben.
Terminal | Beschreibung |
---|---|
Fehlerterminal | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn ein Fehler auftritt. |
Ausgabeterminal | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn sie erfolgreich abgerufen wurde. |
Catch-Terminal | Das Ausgabeterminal, an das die Nachricht geleitet wird, wenn nachgeschaltet eine Ausnahmebedingung ausgegeben und von diesem Knoten abgefangen wurde. |
In den folgenden Tabellen werden die Knoteneigenschaften beschrieben. Die Spalte O zeigt an, ob die Eigenschaft obligatorisch ist (markiert mit einem Sternchen, wenn ein Wert eingegeben werden muss, weil kein Standardwert definiert ist). Die Spalte K zeigt an, ob die Eigenschaft konfigurierbar ist (Wert kann geändert werden, wenn der Nachrichtenfluss zur BAR-Datei hinzugefügt wird, um ihn einzusetzen).
In der folgenden Tabelle werden die Beschreibungseigenschaften des HTTPInput-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Knotenname | Nein | Nein | Knotentyp, z. B. HTTPInput | Der Name des Knotens. |
Kurzbeschreibung | Nein | Nein | Kurze Beschreibung des Knotens | |
Ausführliche Beschreibung | Nein | Nein | Text, der den Zweck des Knotens im Nachrichtenfluss beschreibt |
In der folgenden Tabelle werden die grundlegenden Eigenschaften des HTTPInput-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Pfadsuffix für URL | Ja | Ja | Diese Eigenschaft gibt den Standort an, von dem Web-Service-Anforderungen abgerufen werden. Geben Sie nicht die vollständige URL ein. Wenn die gewünschte URL http://<Hostname>[:<Port>]/[<Pfad>] ist, müssen Sie entweder /<Pfad> oder /<Pfadfragment>/* angeben; dabei ist * ein Platzhalterzeichen, das für jedes Zeichen stehen kann. | |
HTTPS verwenden | Nein | Ja | Gelöscht | Diese Eigenschaft gibt an, ob der Knoten sicheres HTTP akzeptiert. Wenn der Knoten sicheres HTTP akzeptieren soll, aktivieren Sie das Kontrollkästchen. |
In der folgenden Tabelle werden die Eigenschaften von 'Syntaxanalyse der Eingabenachricht' des HTTPInput-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Nachrichtendomäne | Nein | Nein | Die Domäne für die Syntaxanalyse der eingehenden Nachricht. Wählen Sie in der Liste den Namen des zu verwendenden Parsers aus:
|
|
Nachrichtengruppe | Nein | Nein | Der Name oder die ID der Nachrichtengruppe, in der die eingehende Nachricht
definiert ist. Alle verfügbaren Nachrichtengruppen stehen in der Liste. Wenn Sie den MRM- oder IDOC-Parser verwenden, wählen Sie die gewünschte Nachrichtengruppe aus. Diese Liste wird mit den verfügbaren Nachrichtengruppen gefüllt, wenn Sie MRM oder IDOC als Domäne auswählen. Bei XML-, XMLNS-, XMLNSC, JMS, MIME- und BLOB-Parsern erfolgt im Feld Nachrichtengruppe keine Angabe. |
|
Nachrichtentyp | Nein | Nein | Der Name der eingehenden Nachricht. Wenn Sie den MRM-Parser verwenden, wählen Sie aus der Liste unter Nachrichtentyp den Nachrichtentyp aus. Diese Liste wird mit Nachrichten aufgefüllt, die in der von Ihnen ausgewählten Nachrichtengruppe definiert sind. Lassen Sie bei XML-, XMLNS-, XMLNSC-, JMS-, IDOC-, MIME- und BLOB-Parsern die Option Nachrichtenart leer. |
|
Nachrichtenformat | Nein | Nein | Der Name des physischen Formats der eingehenden Nachricht. Wenn Sie den Parser MRM oder IDOC verwenden, wählen Sie aus der Liste unter Nachrichtenformat das gewünschte Format aus. Diese Liste enthält alle physischen Formate, die Sie für diese Nachrichtengruppe definiert haben. Lassen Sie das Nachrichtenformat bei den XML-, XMLNS-, XMLNSC-, JMS-, MIME- und BLOB-Parsern leer. |
In der folgenden Tabelle werden die Eigenschaften der Parser-Optionen für den HTTPInput-Knoten beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Zeitpunkt für Syntaxanalyse | Nein | Nein | Bei Bedarf | Durch diese Eigenschaft wird gesteuert, zu welchem Zeitpunkt eine Eingabenachricht syntaktisch analysiert wird. Gültige Werte sind Bei Bedarf, Sofort und Vollständig. Diese Eigenschaft ist standardmäßig auf Bei Bedarf gesetzt, d. h., die Gültigkeitsprüfung wird verschoben, bis im Rahmen einer Teil-Syntaxanalyse eine Syntaxanalyse erfolgt. Wenn Sie den Wert für diese Option in Sofort ändern, wird die Teil-Syntaxanalyse außer Kraft gesetzt. In diesem Fall werden alle Nachrichtenkomponenten syntaktisch analysiert und ausgewertet. Eine Ausnahme stellen dabei diejenigen komplexen Typen mit der Zusammensetzung 'Auswahl' oder 'Nachricht' dar, die zu diesem Zeitpunkt nicht aufgelöst werden können und zu einem Auswertungsfehler führen. Wenn Sie diesen Wert in Vollständig ändern, wird die Teil-Syntaxanalyse außer Kraft gesetzt und alle Nachrichtenkomponenten syntaktisch analysiert und ausgewertet. |
XMLNSC-Kompaktparser für XMLNS-Domäne verwenden | Nein | Nein | Gelöscht | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Kompaktparser für Nachrichten in der XMLNS-Domäne verwendet wird. Wenn Sie diese Eigenschaft festlegen, werden die Nachrichtendaten unter XMLNSC in Knoten, die mit dem Ausgabeterminal verbunden sind, angezeigt, wenn es sich bei dem MQRFH2-Eingabeheader oder der Eigenschaft Nachrichtendomäne unter 'Syntaxanalyse der Eingabenachricht' um XMLNS handelt. |
Zugriff auf gemischten Inhalt | Nein | Nein | Gelöscht | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser beim Erkennen von gemischtem Text in einer Eingabenachricht Elemente in der Nachrichtenbaumstruktur erstellt. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für gemischten Text erstellt. Andernfalls wird gemischter Text ignoriert, und es werden keine Elemente erstellt. |
Kommentare beibehalten | Nein | Nein | Gelöscht | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser beim Erkennen von Kommentaren in einer Eingabenachricht Elemente in der Nachrichtenbaumstruktur erstellt. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für Kommentare erstellt. Andernfalls werden Kommentare ignoriert, und es werden keine Elemente erstellt. |
Verarbeitungsanweisung beibehalten | Nein | Nein | Gelöscht | Durch diese Eigenschaft wird gesteuert, ob der XMLNSC-Parser beim Erkennen von Verarbeitungsanweisungen in einer Eingabenachricht Elemente in der Nachrichtenbaumstruktur erstellt. Wenn Sie das Kontrollkästchen aktivieren, werden Elemente für Verarbeitungsanweisungen erstellt. Andernfalls werden Verarbeitungsanweisungen ignoriert, und es werden keine Elemente erstellt. |
In der folgenden Tabelle werden die Fehlerhandhabungseigenschaften des HTTPInput-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Maximale Client-Wartezeit(Sekunden) | Ja | Nein | 180 | Die Zeit in Sekunden, die ein TCP/IP-Empfangsprogramm, das die Eingabenachricht vom Web-Service-Client empfangen hat, auf eine Antwort vom HTTPReply-Knoten innerhalb des Nachrichtenflusses wartet. Wenn innerhalb dieser Zeit eine Antwort eingeht, übergibt das Empfangsprogramm die Antwort an den Client. Wenn in dieser Zeit keine Antwort eingeht, sendet das Empfangsprogramm eine SOAP-Fehlernachricht an den Client, in der darauf hingewiesen wird, dass sein Zeitlimit abgelaufen ist. Der gültige Bereich liegt zwischen null (unendliche Wartezeit) und (231)-1. |
Fehlerformat | Nein | Ja | SOAP 1.1 | Das Format von beliebigen HTTP-Fehlern, die an den Client zurückgegeben werden. Gültige Werte sind SOAP 1.1, SOAP 1.2 und HTML. |
In der folgenden Tabelle werden die Auswertungseigenschaften des HTTPInput-Knotens beschrieben. Wenn eine Nachricht an das Fehlerterminal des Knotens übergeben wird, wird sie nicht ausgewertet. Sie finden weitere Informationen hierzu in den Abschnitten Nachrichten überprüfen und Auswertungseigenschaften.
.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Auswerten | Nein | Ja | Keiner | Durch diese Eigenschaft wird gesteuert, ob eine Auswertung stattfindet. Gültige Werte sind Keiner, Inhalt und Wert und Inhalt. |
Fehlerbehebungsmaßnahme | Nein | Nein | Ausnahme | Durch diese Eigenschaft wird gesteuert, was beim Fehlschlagen der Auswertung geschieht. Sie können diese Eigenschaft nur angeben, wenn Sie Auswerten auf Inhalt oder Inhalt und Wert gesetzt haben. Gültige Werte sind Benutzertrace, Lokales Fehlerprotokoll, Ausnahmebedingung und Ausnahmeliste. |
Alle Wertvorgaben einschließen | Nein | Nein | Ausgewählt | Diese Eigenschaft kann nicht bearbeitet werden. Bei der Auswertung von Inhalt und Wert werden auch Basisprüfungen der Wertvorgaben durchgeführt. |
Korrektur | Nein | Nein | Keiner | Diese Eigenschaft kann nicht bearbeitet werden. |
In der folgenden Tabelle werden die erweiterten Eigenschaften des HTTPInput-Knotens beschrieben.
Eigenschaft | O | K | Standardwert | Beschreibung |
---|---|---|---|---|
Zieladressenliste einrichten | Nein | Nein | Ausgewählt | Gibt an, ob die Methode 'Bindungsname' zur Zieladressenliste für die Weiterleitung an Zieladressen hinzugefügt werden soll. Wird dieses Kontrollkästchen aktiviert, wird die Methode 'Bindungsname' hinzugefügt, so dass Sie einen RouteToLabel-Knoten nach dem HTTPInput-Knoten im Nachrichtenfluss verwenden können. |
Präfix | Nein | Nein | - | Das Präfix, das bei der Weiterleitung an den Kennsatz an den Namen der Methode angefügt wird. Fügen Sie ein Zieladressenpräfix hinzu, um Konflikte zwischen den jeweiligen Kennsatzknoten zu vermeiden, wenn Sie mehrere WebSphere Message Broker-Empfangsknoten in denselben Nachrichtenfluss aufnehmen. Das Kennsatzpräfix wird standardmäßig nicht eingefügt; der Methodenname und die Kennsatzbezeichnung sind also identisch. |