| Kontakt | Login

Flink-ESB Message-Gateway Tutorials

Anwendungsfall: JMS-Dienste über HTTP aufrufen

Video des Tutorials anzeigen

Ausgangssituation: es gibt einen Ticket-Service, verfügbar über die JMS-Transport auf 3 verschiedenen JMS-Queues: "urgent", "normal" und "slow"

Die Nachrichten, die in die "urgent"-Queue gesendet werden, werden am schnellsten bearbeitet. Tickets mit PRIO 2 und 3 sollten in die "normal"-Queue geschickt werden. Tickets mit der niedrigsten Priorität werden über "slow"-Queue ausgetauscht

Format von Nachrichten: XML. Es gibt eine Schemadatei die das Format von Ticket-Requests und -Responses beschreibt

Ziel: Möglichkeit die Dienste über eine HTTP POST Url aufzurufen hinzuzufügen

Es sollte das gleiche Nachrichtenformat verwendet werden. XML-Requests sollen gegen Schemadatei geparst werden. Im Fall Parsing fehlschlägt: ein Fehler sollte an den aufrufenden HTTP-Client geworfen werden.

Tickets sollen automatisch auf 3 verschiedenen JMS-Warteschlangen je nach Ticket-Priorität gesendet werden (anhand des Wertes des "priority"-Element innerhalb von XML-Nachricht)

Prio 1 Tickets sollten in die "urgent"-Queue verschickt werden, Prio 2 und 3: in die "normal"-Queue, und Prio 4: in "slow"-Queue

Voraussichtliche Kosten:

Programmieraufwand: 0

Administratoraufwand: 15 Minuten

Video des Tutorials anzeigen

Schritt 1: JMS-Ziele in Flink-ESB Message-Gateway Konfig-Konsole definieren

Flink-ESB Message-Gateway Konfig-Konsole im Browser öffnen. Standard-URL: https://localhost:8082. Einloggen mit Standard Benutzername/Passwort: admin/admin. Sie sollten nun die Haupt-Seite ohne Konfigurationseinträge sehen, so wie auf dem Bild unten dargestellt:

"Destinations"-Reiter wählen und auf "Add Entry" Knopf drücken.

Geben Sie die Daten wie auf dem Bild unten ein: "Destination Id": 1001 (oder jede beliebige eindeutige Id), "Protocol": JMS, "MEP": REQ_REPLY, "Destination Expression": 'urgent'. !!! Stellen Sie sicher, dass "Destination Expression" Wert in einfachen Anführungszeichen ist !!!

Klicken Sie auf der hinzugefügten Zeile um Detailspanel zu verbergen. Klicken Sie auf "Add Entry" Taste erneut, und geben Sie die Daten für das zweite Ziel ein: "Destination Id" : 1002 (oder jede beliebige eindeutige Id), "Protocol" : JMS, "MEP" : REQ_REPLY, "Destination Expression" : 'normal'.

Details-Panel ausblenden. Klicken Sie auf "Add Entry" -Button und geben die Daten zum dritten Ziel ein: "Destination Id" : 1003 (oder jede beliebige eindeutige Id), "Protocol" : JMS, "MEP" : REQ_REPLY, "Destination Expression" : 'slow'.

Details-Panel des dritten Ziel ausblenden. Überprüfen Sie nun die Daten aller drei Ziele. Sie sollen wie auf dem Bild unten aussehen:

Wenn Sie irgendwo Fehler gefunden haben, klicken Sie auf der jeweiligen Zeile um Details-Panel sichtbar zu machen, und beheben Sie die Daten. Klicken Sie nun auf "Save Modifications" um die neuen Ziele zu speichern

Schritt 2: Validierungsregel (Parsing gegen XSD-Schema-Datei) in der Flink-ESB Message-Gateway Konfig-Konsole definieren

Klicken Sie auf "Validation Rules"-Reiter und danach klicken Sie auf "Add Entry" Button. Geben Sie Daten wie auf dem Bild unten ein: "Rule Id": 1001 (oder jede beliebige eindeutige ID), "Rule Type": SCHEMA, "Expression or Filename": 'D: /programming/xsd/ticket.xsd' (verwenden Sie Ihren lokalen Pfad für die Schemadatei)

Klicken Sie auf "Save Modifications" um die Validierungsregel zu speichern

Schritt 3: Fassade-Eintrag erstellen und Validierungsregel und die Ziele dem Eintrag mittels Flink-ESB Message-Gateway Konfig-Konsole zuweisen

Klicken Sie auf "Gateway Config" und danach auf "Add Entry". Geben sie die Daten wie auf der Abbildung unten: "Config Id": 1001 (oder irgendeine eindeutige ID), "Method": POST, "URI": /service/ticket. Lassen Sie alle anderen Felder unverändert

Jetzt drücken Sie auf "Edit Request Validation Rules" -Link und wählen Sie dann "Show all rules" Checkbox. Dies sollte die Validierungsregel aus dem vorherigen Schritt sichtbar machen. Aktivieren Sie die Checkbox auf der linken Seite dieser Regel, um es dem Fassade-Eintrag zuzuweisen (die Farbe ändert sich von grau auf schwarz) wie auf dem Bild unten:

Klicken Sie auf "Edit Destination Rules" Link und wählen Sie dann "Show all rules" Checkbox. Dies sollte drei Ziele, die im Schritt 1 erstellt worden sind, sichtbar machen. Wählen Sie 3 JMS-Ziele und geben Sie die Daten wie auf dem Bild unten ein: "Condition" für Regel 1: xpathIgnoreNamespace(property['request'], '//priority')=='1', "Ranking" für Regel 1: 10, "Condition" für die Regel 3: xpathIgnoreNamespace(property['request'], '//priority')=='4', "Ranking" für Regel 3: 5

Was es bedeutet: Message-Gateway wählt das passende Ziel nach diesen Regeln: 1) Ziele anhand Ranking ordnern (Ziel mit dem höchsten Ranking wird zuerst versucht); 2) Validiere "Condition" und sehe ob sie den Wert "true" zurückgibt. Ist dies der Fall - wird aktuelles Ziel ausgewählt und eine Anfrage an dieses Ziel gesendet. Wenn "false" zurückgegeben wird, wird ein nächstes Ziel geprüft. Dies setzt sich fort, bis das letzte Ziel (mit dem niedrigsten Ranking) erreicht ist. Da es keine Bedingung hat, gibt es immer "true" zurück. Buchstäblich bedeutet das: Dokumente mit "priority" -Element mi dem Wert "1" werden an das erste Ziel gesendet, Dokumente mit "priority" -Element mit dem Wert "4" werden an das dritte Ziel gesendet. Alle anderen (Priorität 2 und 3) werden an das zweite Ziel gesendet.

Klicken Sie auf Fassade-Eingabezeile um Details-Panel zu verbergen. Stellen Sie sicher, es sieht aus wie auf dem Bild unten:

Wenn Fehler gefunden, klicken Sie auf Fassade-Eingabezeile um Details-Panel zu enthüllen, und beheben sie die Daten. Drücken Sie nun auf "Save Modifications", um die Änderungen zu speichern

Schritt 4: Konfiguration an die laufenden Instanzen von Flink-ESB Message-Gateway verschicken

Klicken Sie auf "Gateway Config" Registerkarte, wenn Sie noch nicht da sind, und klicken Sie auf "Trigger Instances" -Taste. Bestätigen Sie die Meldung mit der Taste "OK"

Schritt 5: Überprüfung der Funktionalität mit Flink-ESB Admin-Konsole

Öffnen Sie Flink-ESB Admin-Konsole im Browser. Standard-URL: https://localhost:8443/console/start. Melden Sie sich mit Ihrem Konto/Passwort an (Standard nach der Installation: admin/admin).

Klicken Sie auf "Applications Overview" um es zu erweitern. Nun sollten Sie einen Instanznamen sehen. Klicken Sie auf Dreieck auf der linken Seite des Instanznamen um es zu erweitern. Sie sollten jetzt die auf dieser Instanz installierten Anwendungen sehen. Klicken Sie auf das Dreieck neben "Message Gateway" Anwendung und klicken Sie auf "Routes".

Nun sollten Sie die Routen sehen. Klicken Sie auf "from-HTTP-1001" Route, wobei "1001" - Id des Fassade-Eintrags ist. Jetzt sollten Sie folgendes sehen:

Klicken Sie auf "Call Route" Reiter auf der rechten Seite direkt unterhalb der grafischen Darstellung der Route.

Geben Sie '' in dem "Payload" -Feld ein, und fügen Sie den Inhalt des XML-Beispiel-Requests zwischen einfachen Anführungszeichen.

Drücken Sie "Call". Jetzt sollten Sie die Antwort sehen:

Vergewissern Sie sich, dass "destination.id" Eigenschaft des Responses den Wert hat, dass der Id des Ziels in Message-Gateway Konfig-Konsole entspricht.

Ändern Sie Priorität in dem Request auf "2" und drücken Sie "Call" wieder. Überprüfen Sie die Antwort und den Wert von "destination.id" Eigenschaft. Wiederholen Sie diesen Vorgang mit der Priorität "3" und "4"

Video des Tutorials anzeigen

Impressum Kontakt Copyright (C) Verbundo GmbH - Alle Rechte vorbehalten