Configuración de un cliente de servicios web para acceder a los recursos con un proxy web

Puede configurar un cliente de servicios web para acceder a los recursos mediante un servidor proxy web

Acerca de esta tarea

Puede configurar un cliente de servicios web para acceder a los recursos conectándose a un servidor proxy web con o sin autenticación necesaria, exactamente igual que en otras aplicaciones cliente HTTP. Puede configurar propiedades de transporte HTTP para un servicio web que actúa como cliente para otro servicio web. Los valores del transporte HTTP configurados se utilizan en tiempo de ejecución. Configure los valores del transporte HTTP de una de las maneras siguientes:
  • Configure las propiedades con el panel de propiedades personalizadas de la máquina virtual Java™ (JVM) de la consola administrativa.
  • Configure las propiedades con la herramienta de línea de mandatos wsadmin.
  • Configure las propiedades con una herramienta de ensamblaje.
  • Configure las propiedades mediante programa utilizando el modelo de programación de aplicaciones

Si desea configurar mediante programación las propiedades utilizando el modelo de programación JAX-RPC (API de Java para RPC basado en XML) o el modelo de programación JAX-WS (API de Java para servicios web XML), revise las especificaciones JAX-RPC o JAX-WS.

Para obtener una lista completa de los estándares y las especificaciones a los que se da soporte, consulte las especificaciones y la documentación de la API de los servicios Web.

Para los servicios web de JAX-RPC (API de Java para RPC basado en XML), los valores de transporte HTTP adoptan el orden de precedencia siguiente siendo el método de programación lo más significativo:
  1. valores especificados mediante programa en el objeto Call
  2. valores definidos en los descriptores de despliegue de cada atributo portQNameBinding con una herramienta de ensamblaje
  3. valores definidos como propiedades del sistema de JVM

Para los servicios web JAX-WS (API de Java para servicios web XML), los valores del transporte HTTP especificados en las definiciones de conjuntos de políticas tienen precedencia sobre los valores definidos mediante programa. Posteriormente, los valores del transporte HTTP definidos mediante programa tienen precedencia sobre los valores definidos como propiedades del sistema de JVM. Para aplicaciones JAX-WS, los descriptores de despliegue no están soportados. Utilice las anotaciones para especificar la información de despliegue.

Procedimiento

  1. Configure las propiedades de transporte HTTP o HTTPS proxyHost y proxyPort para los servicios web de una de estas maneras:
    • con el panel de propiedades personalizadas de máquina virtual Java (JVM) de la consola administrativa
    • con la herramienta de línea de mandatos wsadmin
    • con herramientas de ensamblaje
    • mediante programa con el modelo de programación de aplicaciones
    Para acceder al proxy web en HTTP:
    • http.proxyHost
    • http.proxyPort
    Para acceder al proxy web en HTTPS:
    • https.proxyHost
    • https.proxyPort
  2. Si se requiere autenticación de proxy HTTP para el cliente de servicios web, configure de manera adicional las propiedades de transporte HTTP o HTTPS proxyUser y proxyPassword con uno de los métodos especificados en el paso anterior.
    Para acceder al proxy web en HTTP:
    • http.proxyUser
    • http.proxyPassword
    Para acceder al proxy web en HTTPS:
    • https.proxyUser
    • https.proxyPassword
  3. Si especifica las propiedades HTTP o HTTPS mediante programa, establezca las propiedades en la instancia de Stub o Call para configurar la autenticación del proxy HTTP.
    1. Puede establecer las propiedades HTTP o HTTPS mediante programa con las siguientes constantes de servicios web:
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYHOST_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYPORT_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYUSER_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTP_PROXYPASSWORD_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYHOST_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYPORT_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYUSER_PROPERTY
      com.ibm.wsspi.webservices.Constants.HTTPS_PROXYPASSWORD_PROPERTY
  4. Utilice el tunelado en la capa de transporte de servicios web para permitir que el cliente de servicios web acceda a recursos mediante un servidor proxy web. Establezca la propiedad de máquina virtual Java (JVM) com.ibm.ws.websvcs.transport.enableProxyTunnel en el valor true.

Resultados

Ha configurado el cliente de servicios web para utilizar un servidor proxy web para acceder a los recursos.

Puede establecer de modo opcional la propiedad http.nonProxyHosts para especificar los nombres de host de máquinas a las que no se enviarán las solicitudes mediante el servidor proxy. Cualquier solicitud invocada mediante la aplicación cliente que se envíe a un host cuyo nombre esté contenido en esta propiedad no pasará por el servidor proxy. Esta propiedad se aplica para las conexiones HTTP y HTTPS. Para obtener más información sobre la propiedad http.nonProxyHosts y otras propiedades HTTP que puede configurar, consulte sobre propiedades personalizadas de transporte HTTP para aplicaciones de servicios web.

Ejemplo

El código siguiente permite configurar el proxy HTTP mediante programa:
import com.ibm.wsspi.webservices.Constants
Properties prop = new Properties();
InitialContext ctx = new InitialContext(prop);
Service service = (Service)ctx.lookup("java:comp/env/service/StockQuoteService");
QName portQname = new QName("http://httpchannel.test.wsfvt.ws.ibm.com", "StockQuoteHttp");
StockQuote sq = (StockQuote)service.getPort(portQname, StockQuote.class);
((javax.xml.rpc.Stub) sq)._setProperty(Constants.HTTP_PROXYHOST_PROPERTY, "proxyHost1.ibm.com");
((javax.xml.rpc.Stub) sq)._setProperty(Constants.HTTP_PROXYPORT_PROPERTY, "80");
Nota: Para JAX-WS, el código siguiente le permite especificar las propiedades de HTTP o HTTPS mediante programación con RequestContext de BindingProvider:
//Set the https.proxyHost as a property on the RequestContext.
BindingProvider bp = (Binding Provider)port;
bp.getRequestContext().put("https.proxyHost", "proxyHost1.ibm.com");
bp.getRequestContext().put("https.proxyPort", "80");

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_configwbsclient2webproxy
File name: twbs_configwbsclient2webproxy.html