Befehl 'createWSGWGatewayService'
Verwenden Sie den Befehl createWSGWGatewayService, um die Konfiguration eines neuen Gateway-Service zu erstellen.
Sie können eine neue Gateway-Service-Konfiguration, wie in diesem Artikel beschrieben, mit dem Tool "wsadmin" erstellen, oder Sie können, wie im Artikel Einen neuen Gateway-Service erstellen beschrieben, die Administrationskonsole verwenden.
Verwenden Sie zum Ausführen des Befehls das Objekt AdminTask des Scripting-Clients wsadmin.
Der Scripting-Client wsadmin wird über die Qshell ausgeführt.
Weitere Informationen finden Sie unter Qshell für die Ausführung von WebSphere-Scripts mit wsadmin-Scripting konfigurieren.
- Geben Sie den folgenden Befehl an der wsadmin-Eingabeaufforderung ein, um eine Liste der verfügbaren Befehle für Gateways und eine Kurzbeschreibung jedes einzelnen Befehls
anzuzeigen:
print AdminTask.help('WSGateway')
- Zum Anzeigen einer übersichtlichen Hilfe zu einem bestimmten Befehl geben Sie an der
wsadmin-Eingabeaufforderung den folgenden Befehl ein:
print AdminTask.help('Befehlsname')
AdminConfig.save()
Bevor Sie diesen Befehl verwenden, können Sie mit Befehlen für SIB-fähige Web-Services einen neuen Service für abgehende Daten erstellen und einen Port für abgehende Daten hinzufügen. Weitere Informationen finden Sie im Beispiel am Ende dieses Artikels.
Zweck
Dieser Befehl erstellt einen neuen GatewayService mit den zugehörigen InboundService- und TargetService-Objekten.
Zielobjekt
ObjectName der Gateway-Instanz, in der der Gateway-Service erstellt wird.
Der Befehl erstellt das Ziel für Gateway-Anforderungen und das zugehörige Antwortziel. Das Ziel für Gateway-Anforderungen wird konfiguriert, um dem Antwortpfad das Antwortziel hinzuzufügen. Wenn bereits ein Ziel mit dem angegebenen Namen oder dem Standardnamen vorhanden ist, schlägt der Befehl fehl.
Wenn bereits ein Gateway-Service oder Proxy-Service mit demselben Namen vorhanden ist, schlägt der Befehl fehl.
Der Befehl erstellt immer ein InboundService-Objekt, das denselben Namen hat wie der Gateway-Service. Der Befehl schlägt fehl, wenn bereits ein Service für eingehende Daten mit diesem Namen vorhanden ist.
Die WSDL-Position aus dem OutboundService-Objekt bzw. Befehl wird für die WSDL-Schablone des Service für eingehende Daten verwendet. Wenn die WSDL über einen Proxy-Server abgerufen wird, muss der Server, in dem der Befehl ausgeführt wird, die Systemeigenschaften besitzen, die den Proxy-Server ordnungsgemäß angeben. Falls der Proxy-Server eine Authentifizierung erfordern, können die Benutzer-ID und das Kennwort als Parameter mit dem Befehl angegeben werden.
Das von diesem Befehl erstellte TargetService-Objekt wird als Standardeinstellung für den Gateway-Service definiert, und der Standard-Routing-Pfad im Gatewayziel zeigt auf das geplante Ziel. Die Eigenschaft com.ibm.websphere.wsgw.targets des geplanten Ziels enthält das geplante Ziel bzw. das Ziel, das dem Service für abgehende Daten zugeordnet ist. Die Eigenschaften com.ibm.websphere.wsgw.gatewayService und com.ibm.websphere.wsgw.gatewayInstance des Gatewayziels werden entsprechend definiert.
Erforderliche Parameter
- -name
- Der Name des Gateway-Service.
Vorgegebene Parameter
- -wsdlLocation
- Die Position der WSDL-Schablonendatei.
Dies ist entweder eine Webadresse oder der servicespezifische Teil eines UDDI-Serviceschlüssels. Wenn Sie eine UDDI-Referenz angeben, wird angenommen, dass es sich bei der WSDL-Position um einen UDDI-Serviceschlüssel handelt.
Es folgt ein Beispiel für einen vollständigen UDDI-Serviceschlüssel:
Der servicespezifische Teil dieses Schlüssels ist der letzte Teil:uddi:blade108node01cell:blade108node01:server1:default:6e3d106e-5394-44e3-be17-aca728ac1791
6e3d106e-5394-44e3-be17-aca728ac1791
- Wenn Sie diesen Parameter nicht angeben, wird die WSDL-Position aus dem OutboundService-Objekt als Schablone für die WSDL-Position verwendet.
- -wsdlServiceName
- Der Name des Service im WSDL-Dokument. Der Name muss nur angegeben werden, wenn die WSDL-Schablone mehrere Services enthält oder die WSDL in einer UDDI-Registry gesucht wird.
- -wsdlServiceNamespace
- Der Namespace des Service im WSDL-Dokument. Dieser Parameter muss nur angegeben werden, wenn die WSDL-Schablone mehrere Services enthält oder die WSDL mit einer UDDI-Registry gesucht wird oder der Service nicht im Standard-Namespace für das WSDL-Dokument enthalten ist.
- -targetDestination
- Der Name des geplanten Ziels, das sich in demselben Service Integration Bus wie das Gatewayziel oder in einem anderen Bus befinden kann (im letzteren Fall muss auch der Parameter -targetBus angegeben werden).
- Geben Sie den Parameter -targetDestination oder -targetService an.
- -targetBus
- Der Name des Service Integration Bus mit dem geplanten Ziel.
- Geben Sie diesen Parameter an, wenn der Parameter -targetDestination angegeben wurde und das geplante Ziel sich nicht in demselben Service Integration Bus wie das Gatewayziel befindet.
- -targetService
- Der Name des Zielservice für abgehende Daten.
- Geben Sie den Parameter -targetDestination oder -targetService an.
Optionale Parameter
- -requestDestination
- Der Name des Gatewayanforderungsziels.
- -replyDestination
- Der Name des Gatewayantwortziels.
- -uddiReference
- Wenn Sie einen UDDI-Serviceschlüssel als Position der WSDL angegeben haben, müssen Sie die UDDI-Referenz für die UDDI-Zielregistry angeben.
- -userId
- Die Benutzer-ID für das Abrufen der WSDL.
- -password
- Das Kennwort für das Abrufen der WSDL.
Beispiel
- Mit Jython:
gwService = AdminTask.createWSGWGatewayService(wsgw, ["-name", "MyGatewayService", "-targetService", "MyService"])
- Mit Jacl:
set gwService [$AdminTask createWSGWGatewayService $wsgw {-name "MyGatewayService" -targetService "MyService"}]
- Erstellen Sie den Service für abgehende Daten für den Service-Provider. Bus steht für den Namen des Service
Integration Bus:
- Mit Jython:
outService = AdminTask.createSIBWSOutboundService(bus, ["-name", "StockQuoteService", "-wsdlLocation", "http://myserver.com/wsdl/StockQuoteService.wsdl"])
- Mit Jacl:
set outService [$AdminTask createSIBWSOutboundService $bus {-name "StockQuoteService" -wsdlLocation "http://myserver.com/wsdl/StockQuoteService.wsdl"}]
- Mit Jython:
- Fügen Sie gemäß Definition in der WSDL des Service-Providers einen Port für SOAP over HTTP hinzu:
- Mit Jython:
outPort = AdminTask.addSIBWSOutboundPort(outService, ["-name", "SOAPHTTPPort", "-node", "MyNode", "-server", "server1"])
- Mit Jacl:
set outPort [$AdminTask addSIBWSOutboundPort $outService {-name "SOAPHTTPPort" -node "MyNode" -server "server1"}]
- Mit Jython:
- Erstellen Sie den Gateway-Service. wsgw steht für den Namen der Gateway-Instanz:
- Mit Jython:
gwService = AdminTask.createWSGWGatewayService(wsgw, ["-name", "StockQuoteGatewayService", "-targetService", "StockQuoteService"])
- Mit Jacl:
set gwService [$AdminTask createWSGWGatewayService $wsgw {-name "StockQuoteGatewayService" -targetService "StockQuoteService"}]
- Mit Jython:
- Rufen Sie den Service für eingehende Daten für den Gateway-Service ab. Busname steht hier für den Namen des
Service Integration Bus:
- Mit Jython:
inServiceName = AdminConfig.showAttribute(gwService, "inboundServiceName")
inService = AdminConfig.getid( "/SIBus:"+busName+"/SIBWSInboundService:"+inServiceName+"/" )
- Mit Jacl:
set inServiceName [$AdminConfig showAttribute $gwService "inboundServiceName"]
set inService [$AdminConfig getid /SIBus:$busName/SIBWSInboundService:$inServiceName/]
- Mit Jython:
- Fügen Sie einen Port für SOAP over HTTP hinzu (der erste Endpunktlistener für SOAP over HTTP ist bereits konfiguriert):
- Mit Jython:
inPort = AdminTask.addSIBWSInboundPort(inPort, ["-name", "SOAPHTTPPort", "-endpointListener", "soaphttp1", "-node", "MyNode", "-server", "server1"])
- Mit Jacl:
set inPort [$AdminTask addSIBWSInboundPort $inPort {-name "SOAPHTTPPort" -endpointListener "soaphttp1" -node "MyNode" -server "server1"}]
- Mit Jython:
- Schließen Sie die Konfiguration der Services und Ports für eingehende und abgehende Daten ab. Installieren Sie beispielsweise JAX-RPC-Handler oder WS-Security.