Mandato createWSGWGatewayService
Utilice el mandato createWSGWGatewayService para crear una nueva configuración de servicio Gateway.
Puede crear una nueva configuración de servicio Gateway utilizando la herramienta wsadmin como se describe en este tema, o bien utilizando la consola administrativa como se describe en Creación de una configuración de servicio Gateway nueva.
Para ejecutar el mandato, utilice el objeto AdminTask del cliente de scripts wsadmin.
El cliente de scripts wsadmin
se ejecuta desde Qshell.
Para obtener más información, consulte Configuración de Qshell para ejecutar scripts de WebSphere mediante el script wsadmin.
- Si desea una lista de los mandatos disponibles de pasarela, además de una breve descripción de cada mandato, escriba el mandato siguiente en el indicador de
wsadmin:
print AdminTask.help('WSGateway')
- Si desea ayuda general sobre un mandato determinado,
especifique el mandato siguiente en el indicador de wsadmin:
print AdminTask.help('nombre_mandato')
AdminConfig.save()
Antes de utilizar este mandato, es posible que desee utilizar los mandatos de servicios web habilitados por el bus de integración de servicios para crear un nuevo servicio de salida y añadir un puerto de salida. Para obtener más información, consulte el ejemplo de trabajo que se encuentra al final de este tema.
Finalidad
Este mandato crea un GatewayService nuevo con los objetos InboundService y TargetService asociados.
Objeto de destino
ObjectName de la instancia de pasarela en la que se ha creado el servicio Gateway.
El mandato crea el destino de solicitud de la pasarela y el destino de la respuesta correspondiente. El destino de solicitud de pasarela se configura para actualizar la vía de acceso de respuesta de modo que se añada el destino de respuesta. Si ya existe un destino con el nombre especificado o el nombre predeterminado, el mandato no se ejecuta correctamente.
Si ya existe un servicio Gateway o un servicio proxy con el mismo nombre, el mandato no se ejecuta correctamente.
El mandato siempre crea un objeto InboundService con el mismo nombre que el servicio Gateway. El mandato falla si ya existe un servicio de entrada con dicho nombre.
La ubicación de WSDL del objeto OutboundService o la especificada en el mandato que se utiliza como la ubicación de WSDL de plantilla para el servicio de entrada. Si el WSDL se ha de recuperar a través de un servidor proxy, el servidor en el que se está ejecutando el mandato debe tener establecidas correctamente las propiedades del sistema que identifican al servidor proxy. Si el proxy requiere autenticación, entonces el ID de usuario y la contraseña se pueden establecer como parámetros del mandato.
El objeto TargetService que crea este mandato se establece como el valor predeterminado para el servicio Gateway y la ruta de direccionamiento de reenvío predeterminado del destino de pasarela se establece en el punto del destino indicado. La propiedad com.ibm.websphere.wsgw.targets del destino de pasarela se establece de modo que contenga el destino indicado o el destino asociado al servicio de salida. Las propiedades com.ibm.websphere.wsgw.gatewayService y com.ibm.websphere.wsgw.gatewayInstance del destino de pasarela se establecen como corresponde.
Parámetros necesarios
- -name
- El nombre del servicio Gateway.
Parámetros condicionales
- -wsdlLocation
- La ubicación del archivo WSDL de plantilla.
Es una dirección web o la parte específica del servicio de una clave de servicio UDDI. Si especifica una referencia UDDI, se presupone que la ubicación WSDL es una clave de servicio UDDI.
A continuación aparece un ejemplo de una clave de servicio UDDI completo:
La parte específica del servicio de esta clave es la parte final:uddi:blade108node01cell:blade108node01:server1:default:6e3d106e-5394-44e3-be17-aca728ac1791
6e3d106e-5394-44e3-be17-aca728ac1791
- Si no se especifica este parámetro, entonces se utiliza como ubicación WSDL de plantilla la ubicación WSDL del objeto OutboundService.
- -wsdlServiceName
- El nombre del servicio contenido en el WSDL. Sólo es necesario si el WSDL de plantilla contiene más de un servicio o si el WSDL se localiza mediante un registro UDDI.
- -wsdlServiceNamespace
- El espacio de nombres del servicio contenido en el WSDL. Sólo es necesario si el WSDL de la plantilla contiene más de un servicio o si el WSDL se localiza a través de un registro UDDI o si el servicio no está en el espacio de nombres predeterminado para el documento WSDL.
- -targetDestination
- El nombre del destino señalado, que puede estar dentro del mismo bus de integración de servicios como destino de pasarela o en otro bus (en cuyo caso también se debe especificar -targetBus).
- Especifique el parámetro -targetDestination o -targetService.
- -targetBus
- El nombre del bus de integración de servicios que aloja el destino indicado.
- Especifique este parámetro si se ha especificado el parámetro -targetDestination y el destino señalado no está dentro del mismo bus de integración de servicios que el destino de pasarela.
- -targetService
- El nombre del servicio de salida de destino.
- Especifique el parámetro -targetDestination o -targetService.
Parámetros opcionales
- -requestDestination
- El nombre del destino de solicitud de pasarela.
- -replyDestination
- El nombre del destino de respuesta de pasarela.
- -uddiReference
- Si ha especificado una clave de servicio UDDI como ubicación WSDL, proporcione la referencia UDDI para el registro UDDI de destino.
- -userId
- El ID de usuario que se utiliza para recuperar el WSDL.
- -password
- La contraseña que utiliza para recuperar el WSDL.
Ejemplo
- Utilizando Jython:
gwService = AdminTask.createWSGWGatewayService(wsgw, ["-name", "MyGatewayService", "-targetService", "MyService"])
- Utilizando Jacl:
set gwService [$AdminTask createWSGWGatewayService $wsgw {-name "MyGatewayService" -targetService "MyService"}]
- Cree el servicio de salida que representa el proveedor de servicios, en el que el bus es el bus de integración de servicios:
- Utilizando Jython:
outService = AdminTask.createSIBWSOutboundService(bus, ["-name", "StockQuoteService", "-wsdlLocation", "http://myserver.com/wsdl/StockQuoteService.wsdl"])
- Utilizando Jacl:
set outService [$AdminTask createSIBWSOutboundService $bus {-name "StockQuoteService" -wsdlLocation "http://myserver.com/wsdl/StockQuoteService.wsdl"}]
- Utilizando Jython:
- Añada un puerto SOAP sobre HTTP según está definido en el WSDL del proveedor de servicios:
- Utilizando Jython:
outPort = AdminTask.addSIBWSOutboundPort(outService, ["-name", "SOAPHTTPPort", "-node", "MyNode", "-server", "server1"])
- Utilizando Jacl:
set outPort [$AdminTask addSIBWSOutboundPort $outService {-name "SOAPHTTPPort" -node "MyNode" -server "server1"}]
- Utilizando Jython:
- Cree el servicio Gateway, donde wsgw es la instancia de pasarela:
- Utilizando Jython:
gwService = AdminTask.createWSGWGatewayService(wsgw, ["-name", "StockQuoteGatewayService", "-targetService", "StockQuoteService"])
- Utilizando Jacl:
set gwService [$AdminTask createWSGWGatewayService $wsgw {-name "StockQuoteGatewayService" -targetService "StockQuoteService"}]
- Utilizando Jython:
- Obtenga el servicio de entrada para el servicio Gateway, dondebusName es el nombre del bus de integración de servicios:
- Utilizando Jython:
inServiceName = AdminConfig.showAttribute(gwService, "inboundServiceName")
inService = AdminConfig.getid( "/SIBus:"+busName+"/SIBWSInboundService:"+inServiceName+"/" )
- Utilizando Jacl:
set inServiceName [$AdminConfig showAttribute $gwService "inboundServiceName"]
set inService [$AdminConfig getid /SIBus:$busName/SIBWSInboundService:$inServiceName/]
- Utilizando Jython:
- Añada un puerto SOAP sobre HTTP, donde el escucha de punto final 1 SOAP sobre HTTP ya está configurado:
- Utilizando Jython:
inPort = AdminTask.addSIBWSInboundPort(inPort, ["-name", "SOAPHTTPPort", "-endpointListener", "soaphttp1", "-node", "MyNode", "-server", "server1"])
- Utilizando Jacl:
set inPort [$AdminTask addSIBWSInboundPort $inPort {-name "SOAPHTTPPort" -endpointListener "soaphttp1" -node "MyNode" -server "server1"}]
- Utilizando Jython:
- Complete la configuración de los servicios de entrada y salida y de los puertos. Por ejemplo, aplique manejadores JAX-RPC o WS-Security.