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 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.
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:
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>.
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
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.