Dokumentenflussdefinitionen für einen Web-Service konfigurieren

Um die Dokumentenflussdefinition zu konfigurieren, laden Sie die WSDL-Dateien (Web Service Definition Language) hoch, die den Web-Service definieren, wie in Den Hub konfigurieren beschrieben. Alternativ hierzu können Sie die entsprechenden Dokumentenflussdefinitionen manuell über Community Console eingeben.

Um die entsprechenden Dokumentenflussdefinitionen manuell einzugeben, befolgen Sie die Prozeduren in Dokumentenflussdefinition erstellen. Sie müssen auch die Einträge Dokumentenfluss, Aktivität und Aktion einzeln unter dem Protokoll Web Service erstellen, wie unten beschrieben. Beachten Sie dabei besonders die Voraussetzungen für die Aktion und ihre Beziehung zu den empfangenen SOAP-Nachrichten.

In Bezug auf die Hierarchie von Paket/Protokoll/Dokumentenfluss/Aktivität/Aktion der Dokumentenflussdefinitionen wird ein unterstützter Web-Service wie folgt dargestellt:

Paket: None (Name und Code), Version N/A
Protokoll: Web Service (Name und Code), Version 1.0
Dokumentenfluss: '{<web-service-namespace>}:<web-service-name>' (Name und Code). Dieser muss unter den Dokumentenflüssen für das Web-Service-Protokoll eindeutig sein. Dies ist für den WSDL-Namespace und -Namen typisch.
Aktivitäten: Eine Aktivität für jede Web-Service-Operation mit Name und Code:

'{<operations-namespace>}:<operationsname>'
 

Aktionen: Eine Aktion für die Eingabenachricht jeder Operation mit Name und Code:

'{<namespace des angebenden xml-elements = erstes untergeordnetes element von soap:body>}:<name des
 angebenden xml-elements = erstes untergeordnetes element von soap:body>'
 

Die Aktionen sind die kritischen Definitionen, da WebSphere Business Integration Connect den Namespace und den Namen einer Aktion verwendet, um eine eingehende Web-Serviceanforderungs-SOAP-Nachricht zu erkennen und diese auf einer definierten Teilnehmerverbindung basierend entsprechend weiterzuleiten. Der Namespace und Name des ersten untergeordneten XML-Elements vom Element soap:body der empfangenen SOAP-Nachricht muss mit einem Namensbereich und Namen einer bekannten Aktion in den Dokumentenflussdefinitionen von WebSphere Business Integration Connect übereinstimmen.

Wenn z. B. eine Web-Serviceanforderungs-SOAP-Nachricht (für eine SOAP-Bindung document-literal) wie folgt aussieht:

<?xml version="1.0" encoding="UTF-8"?> 
  
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:xsd=
 "http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/
 2001/XMLSchema-instance">
  <soapenv:Body>
   <nameAndAddressElt xmlns="http://www.helloworld.com/xsd/helloDocLitSchema">
    <titleElt xmlns="">Mr</titleElt>
    <nameElt xmlns="">Joe Smith</nameElt>
    <addressElt xmlns="">
     <numberElt>123</numberElt>
     <streetElt>Elm St</streetElt>
     <cityElt>Peoria</cityElt>
    </addressElt>
   </nameAndAddressElt>
  </soapenv:Body>
 </soapenv:Envelope>
 

Dann würde WebSphere Business Integration Connect nach einer definierten Web-Serviceaktion mit diesem Code suchen:

{http://www.helloworld.com/xsd/helloDocLitSchema}:nameAndAddressElt

Beispiel einer SOAP-Anforderungsnachricht im RPC-Bindungsstil:

<?xml version="1.0" encoding="UTF-8"?> 
  
 <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
 xmlns:xsd=
 "http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/
 2001/XMLSchema-instance">
  <soapenv:Body>
   <ns1:helloWorldRPC soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/
 encoding/ xmlns:ns1="http://www.helloworld.com/helloRPC">
    <name xsi:type="xsd:string">Joe Smith</name>
   </ns1:helloWorldRPC>
  </soapenv:Body>
 </soapenv:Envelope>
 

Bei der obigen Nachricht würde WebSphere Business Integration Connect nach einer definierten Web-Serviceaktion mit dem folgenden Code suchen: {http://www.helloworld.com/helloRPC}:helloWorldRPC

Bei einer RPC-Bindung sollte der Namespace und Name des ersten untergeordneten Elements vom soap:body einer SOAP-Anforderungsnachricht der Namespace und Name der gültigen Web-Serviceoperation sein.

Bei einer Bindung document-literal sollte der Namespace und Name des ersten untergeordneten Elements vom soap:body einer SOAP-Anforderungsnachricht der Namespace und Name des XML-Attributs 'element' im Element 'part' der Eingabedefinition 'message' für den Web-Service sein.

Die WSDL-Dateien für einen Web-Service hochladen

Die Definition für einen Web-Service sollte in einer primären WSDL-Datei mit der Erweiterung ".wsdl" enthalten sein, welche zusätzliche WSDL-Dateien über das Element "import" importieren könnte. Wenn importierte Dateien vorhanden sind, können diese mit der Primärdatei unter Verwendung einer der folgenden Methoden hochgeladen werden:

Beispiel:

Inhalt der primären WSDL-Datei 'helloworldRPC.wsdl'

'<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location=
 "bindingRPC.wsdl"/>'
 

Inhalt der importierten WSDL-Datei 'bindingRPC.wsdl'

'<import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location=
 "port/porttypeRPC.wsdl"/>'
 

Die ZIP-Datei sollte das Folgende enthalten:

Name                   Path
  
 helloworldRPC.wsdl
  
 bindingRPC.wsdl
  
 porttypeRPC.wsdl               port\
 

Wenn eine WSDL-Dateidefinition eines Web-Services hochgeladen wird, wird die ursprüngliche WSDL als Validierungszuordnung gespeichert. (Web-Servicenachrichten werden nicht wirklich von WebSphere Business Integration Connect geprüft. Sie werden direkt mit dem ursprünglichen Serviceendpunkt-URL übergeben.) Dies wird als private WSDL bezeichnet.

Daneben wird eine öffentliche WSDL gespeichert, bei der der private URL durch einen Ziel-URL ersetzt wurde, welcher vom Benutzer in der Eingabe für die Dokumentenflusshochladeoperation bereitgestellt wurde. Die öffentliche WSDL wird den Benutzern des Web-Services zur Verfügung gestellt, die den Web-Service am URL des Ziels (dem öffentlichen URL) aufrufen werden. WebSphere Business Integration Connect wird dann die Web-Serviceanforderung an ein Gateway weiterleiten, das der private URL des ursprünglichen Web-Service-Providers ist. WebSphere Business Integration Connect agiert als Proxy-Server, der die Web-Serviceanforderung an einen privaten Provider-URL weiterleitet, welcher für den Web-Servicebenutzer verdeckt ist.

Sowohl die private als auch die öffentliche WSDL (einschließlich aller importierten Dateien) können von Community Console hochgeladen werden, nachdem die WSDL hochgeladen wurde.

WSDL-Dateien mit Community Console hochladen

Business Integration Connect bietet die Möglichkeit, WSDL-Dateien zu importieren. Wenn ein Web-Service in einer einzelnen WSDL-Datei definiert ist, können Sie die WSDL-Datei direkt hochladen. Wenn der Web-Service mit mehreren WSDL-Dateien definiert ist (dies trifft zu, wenn Sie WSDL-Dateien innerhalb einer primären WSDL-Datei importiert haben), würden diese in einem ZIP-Archiv hochgeladen.

Wichtig: Die WSDL-Dateien in dem ZIP-Archiv müssen in einem Verzeichnis sein, das im WSDL-Importelement angegeben ist. Beim folgenden Importelement <import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location="path1/bindingRPC.wsdl"/> würde die Verzeichnisstruktur im ZIP-Archiv path1/bindingRPC.wsdl lauten. Im nächsten Beispiel <import namespace="http://www.helloworld.com/wsdl/helloRPC.wsdl" location="bindingRPC.wsdl"/>, würde sich die Datei bindingRPC.wsdl im ZIP-Archiv auf Rootebene befinden.

Gehen Sie wie folgt vor, um eine einzelne WSDL-Datei oder ein einzelnes ZIP-Archiv hochzuladen:

  1. Klicken Sie auf Hubadmin > Hubkonfiguration > Dokumentenflussdefinition.
  2. Klicken Sie auf Pakete hoch-/herunterladen.
  3. Wählen Sie Ja für WSDL-Paket aus, um eine WSDL-Datei hochzuladen. Geben Sie für Öffentliche Web-Service-URL-Adresse die öffentliche URL-Adresse des Web-Services ein, der von Community Manager zur Verfügung gestellt wird (welcher von einem Teilnehmer aufgerufen wird). Beispiel: http(s)://<ziel host:port>/bcgreceiver/Receiver. Die URL-Adresse ist in der Regel dieselbe wie das HTTP-Produktionsziel, das in Ziele definiert ist.

    Geben Sie für einen Web-Service (der von Community Manager aufgerufen wird), der von einem Teilnehmer bereitgestellt wird, die öffentliche URL-Adresse des Teilnehmers mit einer Abfragezeichenfolge ein: Beispiel: http(s)://<ziel host:port>/bcgreceiver/Receiver?to=<teilnehmergeschäfts-ID>.

  4. Klicken Sie auf Durchsuchen, und wählen Sie die WSDL-Datei oder das ZIP-Archiv aus.
  5. Wählen Sie für In Datenbank festschreiben die Option Nein aus, wenn Sie die Datei in Testmodus hochladen wollen. Wenn Sie Nein auswählen, wird die Datei nicht auf dem System installiert. Verwenden Sie die vom System generierten Nachrichten, die im Fenster Nachrichten angezeigt werden, um Fehler bei der Hochladeoperation zu beheben. Wählen Sie Ja aus, um die Datei in die Systemdatenbank hochzuladen.
  6. Wählen Sie für Daten überschreiben die Option Ja aus, um eine Datei zu ersetzen, die sich gerade in der Datenbank befindet. Wählen Sie Nein aus, um die Datei der Datenbank hinzuzufügen.
  7. Klicken Sie auf Hochladen. Die WSDL-Datei wird auf dem System installiert.

Pakete mit Schemadateien prüfen

Eine Gruppe von XML-Schemata, die die XML-Dateien beschreiben, welche über die Konsole hochgeladen werden können, wird auf dem Business Integration Connect-Installationsdatenträger bereitgestellt. Hochgeladene Dateien werden mit diesen Schemata geprüft. Die Schemadateien sind eine hilfreiche Referenz zur Bestimmung von Fehlerursachen, wenn eine Datei aufgrund eines XML-Fehlers nicht hochgeladen werden kann. Zu diesen Dateien gehören wsdl.xsd, wsdlhttp.xsd und wsdlsoap.xsd, die das Schema enthalten, das die gültigen WSDL-Dateien (WSDL - Web Service Definition Language) beschreibt.

Die Dateien befinden sich in: B2BIntegrate\packagingSchemas

Interaktion für einen neuen Web-Service konfigurieren

Der letzte Schritt bei der Erstellung der nötigen Dokumentenflussdefinitionen für einen neuen Web-Service besteht darin, eine Interaktion mit derselben Web-Servicedokumentenflussaktion als Quelle und Ziel zu konfigurieren.

Verwenden Sie die folgende Prozedur, um Interaktionen zu erstellen.

  1. Klicken Sie auf Hubadmin > Hubkonfiguration > Dokumentenflussdefinition.
  2. Klicken Sie auf Interaktionen verwalten.
  3. Klicken Sie auf Interaktion erstellen.
  4. Wählen Sie Pass-Through in der Dropdown-Liste Aktion unten in der Anzeige aus (Pass-Through ist die einzige gültige Option, die in WebSphere Business Integration Connect für einen Web-Service unterstützt wird).

Copyright IBM Corp. 1997, 2004