Informationen zum Mustercode 'Web Services Gateway'

Der Mustercode 'Web Services Gateway' zeigt, wie Sie SOAP-Knoten, die im Gateway-Modus arbeiten, zum Aufrufen und Bereitstellen eines Web-Service verwenden können. Dieser Mustercode baut auf zwei vorhandenen Mustercodes auf ('SOAP Nodes' und 'Address Book') und ändert die URL für die SOAPRequest-Knoten, sodass alle Anforderungen über einen neuen Gateway-Nachrichtenfluss weitergeleitet werden, der die Antwort an den jeweiligen Web-Service-Provider weitergibt.

Im Mustercode wird die Operation aus der SOAP-Anforderungsnachricht extrahiert und die URL des Web-Service-Providers über einen benutzerdefinierten, konfigurierbaren Service abgerufen.

Der Mustercodeassistent überschreibt die URL für die SOAPRequest-Knoten in den BAR-Dateien des Nutzernachrichtenflusses. Wenn Sie die BAR-Dateien neu erstellen, werden diese Einstellungen möglicherweise gelöscht und der Gateway-Nachrichtenfluss nicht aufgerufen.

Diagramm mit einer Darstellung der Konfiguration dieses Mustercodes

Der Mustercode 'Web Services Gateway' veranschaulicht folgende Aufgaben:

Vorbereitungen

Machen Sie sich zunächst mit den vorhandenen Mustercodes vertraut, auf denen dieser Mustercode aufbaut.

Nachrichtenfluss

Das folgende Diagramm zeigt den Nachrichtenfluss 'Web Services Gateway':

Screenshot des Web-Gateway-Nachrichtenflusses

In der folgenden Tabelle werden die Knoten im Nachrichtenfluss aufgeführt:

Knotentyp Knotenname
SOAPInput GatewayInput
JavaCompute-Knoten ComputeURL
SOAPRequest SOAP Request
SOAPReply GatewayReply

Der SOAPInput-Knoten wird im Gateway-Modus ausgeführt und akzeptiert Anforderungen der Nutzernachrichtenflüsse des Mustercodes 'Address Book' oder des Mustercodes 'SOAP Node'.

Der JavaCompute-Knoten entnimmt der eingehenden Anforderungsnachricht den Operationsnamen und speichert ihn in 'csName'. Der Konfigurationsassistent dieses Mustercodes erstellt einen benutzerdefinierten, konfigurierbaren Service mit dem Namen 'Gateway' sowie eine Eigenschaft, die mit den Operationsnamen für zwei Nutzernachrichtenflüsse aus den vorhandenen Mustercodes übereinstimmt. Über den Broker-Proxy wird der Wert des konfigurierbaren Service abgerufen und die URL für die Anforderung in der lokalen Umgebung festgelegt.

List nodeset = (List)message.getRootElement().evaluateXPath("SOAP/Body/*[1]");
String csName=((MbElement)(nodeset.get(0))).getName();
		
String URL = null;
	    
try {
	//Get the broker proxy
	BrokerProxy bp = BrokerProxy.getLocalInstance();
	//Find the URL from a configurable service
	URL = bp.getConfigurableServiceProperty("UserDefined/Gateway/"+csName);			
} catch (Exception e) {
	URL="/";
}

//Set the WebServiceURL creating the path if it doesn't exist
le.getRootElement().evaluateXPath("?Destination/?SOAP/?Request/?Transport/?HTTP/?WebServiceURL[set-value('"+URL+"')]");

Der SOAPRequest-Knoten sendet die Anforderung an den geeigneten Providernachrichtenfluss.

Der SOAPReply-Knoten gibt die Antwort an den aufrufenden Nutzernachrichtenfluss zurück.

Nachrichten

Die SOAP-Nachrichten werden von den vorhandenen Nutzer- und Providernachrichtenflüssen generiert. Der Gateway-Nachrichtenfluss verwendet den Operationsnamen, um die Nachricht an den richtigen Provider weiterzuleiten.

Mustercode erweitern

Nachdem Sie den Mustercode ausgeführt haben, können Sie ihn bei Bedarf erweitern, indem Sie einen weiteren Web-Service-Provider hinzufügen. Da zum Speichern der URL für den Provider ein konfigurierbarer Service verwendet wird, müssen Sie lediglich eine Eigenschaft mit dem Namen einer bestehenden Serviceoperation und den Wert, auf den die URL gesetzt ist, hinzufügen.

Zurück zum Beginn des Mustercodes