Web-Serviceanforderer in CICS implementieren
Sie können einen logischen Abschnitt generieren und implementieren, der unter z/OS CICS ausgeführt wird und auf einen Web-Service zugreift.
Voraussetzungen
- Es müssen ein EGL-Projekt, ein EGL-Implementierungsdeskriptor und eine WSDL-Datei (WSDL - Web Services Description Language) vorhanden sein, die Schnittstellendetails zum Service, auf den zugegriffen werden soll, bereitstellt.
- Wenn der EGL-generierte COBOL-Code einen Web-Service anfordert und
die einfache HTTP-Authentifizierung verwendet (also bei Verwendung der Systemfunktion serviceLib.setHTTPBasicAuthentication()), muss der CICS-Systemadministrator den Transporthandler ELAWSHBA für CICS definieren, indem er die folgenden Anweisungen zur Requester-Pipeline CONFIGFILE hinzufügt:
<transport> <default_http_transport_handler_list> <handler> <program> ELAWSHBA </program> </handler> </default_http_transport_handler_list> </transport>Der Transporthandler ELAWSHBA ist im Lieferumfang Ihres EGL-COBOL-Runtime-Produkts enthalten.
Gehen Sie wie folgt vor, um einen Web-Serviceanforderer in CICS zu implementieren:
- Fügen Sie die Web-Service-Binding-Informationen hinzu. Weitere Informationen finden Sie im Abschnitt “SOAP-Service-Binding zu Implementierungsdeskriptor hinzufügen”.
- Erstellen Sie einen Programmabschnitt, der diesen Web-Service verwendet.
- Legen Sie im Builddeskriptor des Projekts die folgenden Builddeskriptoroptionen fest:
- deploymentDescriptor
- Der Name des EGL-Implementierungsdeskriptors, zu dem Sie die Binding-Informationen hinzugefügt haben.
- destDirectory
- Das Stammverzeichnis des hierarchischen Dateisystems, das Ordner enthält, in denen die generierte
Bindingdatei und die WSDL-Datei des Web-Service gespeichert werden. Ein Beispielwert für destDirectory
ist /u/myname/requesters. CICS muss über Lese- und Schreibzugriff
für dieses Verzeichnis verfügen.
Die Bindingdatei des Web-Service ist für die Konvertierung von SOAP-Nachrichten in COBOL-Nachrichten zur Ausführungszeit erforderlich.
- destHost
- Gibt den Namen oder die numerische TCP/IP-Adresse des Zielsystems an, auf dem sich der Build-Server befindet.
- destPassword
- Gibt das Kennwort an, das EGL zum Anmelden beim fernen Build-Server verwendet, auf dem Ihre Ausgabe für die Implementierung vorbereitet wird.
- destPort
- Geben Sie den Port an, auf dem ein ferner Build-Server für Buildanforderungen empfangsbereit ist.
- destUserID
- Gibt die Benutzer-ID an, die EGL zum Anmelden beim fernen Build-Server verwendet, auf dem die Vorbereitung durchgeführt wird.
- genDirectory
- Gibt den vollständig qualifizierten Pfad des Verzeichnisses an, in dem EGL die generierte Ausgabe, die Steuerdateien und die Ergebnisdateien speichert.
- prep
- Setzen Sie prep auf "YES".
- serverType
- Setzen Sie serverType auf "CICS3.1".
- system
- Setzen Sie system auf "ZOSCICS".
- Generieren Sie das Programm und den Implementierungsdeskriptor.
- Definieren Sie einen Web-Service vom Typ "PIPELINE":
- Wenn Sie einen Web-Service vom Typ PIPELINE für Anforderer erstellen müssen, geben Sie den folgenden
Befehl ein:
Verwenden Sie für name den Namen der neuen PIPELINE und für gruppe den Namen der Gruppe.CEDA DEF PIPELINE(name) GROUP(group) - Geben Sie für CONFIGFILE /u/cicsts31/pipelines/basicsoap11requester.xml an. Wenn der Code die einfache HTTP-Authentifizierung verwendet, stellen Sie sicher, dass CONFIGFILE auf den erneut verbundenen Transporthandler ELAWSHBA verweist, wie zuvor in diesem Abschnitt angemerkt.
- Geben Sie für SHELF zielverzeichnis/requester/shelf an. Hierbei steht zielverzeichnis für den Wert, den Sie für die Builddeskriptoroption destDirectory verwendet haben.
- Geben Sie für WSDIR zielverzeichnis/requester an. Hierbei steht zielverzeichnis für den Wert, den Sie für die Builddeskriptoroption destDirectory angegeben haben.
- Wenn Sie einen Web-Service vom Typ PIPELINE für Anforderer erstellen müssen, geben Sie den folgenden
Befehl ein:
- Erstellen Sie ein Programm für den Anforderer, indem Sie den folgenden Befehl eingeben:
Verwenden Sie für name den Programmnamen und für gruppe den Gruppennamen.CEDA DEFINE PROGRAM(name) GROUP(gruppe) LANGUAGE(COBOL) - Erstellen Sie eine Transaktion für den Anforderer, indem Sie den folgenden Befehl eingeben:
Verwenden Sie den Transaktionsnamen für name, den Gruppennamen für gruppe und den Programmnamen für programmname.CEDA DEFINE TRANSACTION(name) GROUP(gruppe) PROGRAM(programName) TWASIZE(1024) - Installieren Sie die Gruppe, indem Sie den folgenden Befehl eingeben:
Verwenden Sie den Namen der Gruppe für gruppe.CEDA INSTALL GROUP(gruppe) - Führen Sie die Transaktion aus.