Elegir un proxy para un cliente JAX-WS de WebSphere 8.5.5
Aplique las propiedades de proxy documentadas de WebSphere al contexto de solicitud del cliente JAX-WS en lugar de cambiar el enrutamiento de toda la JVM.
En WebSphere Application Server 8.5.5 JAX-WS, compruebe dos controles del entorno antes de confiar en una dirección del contexto de solicitud del cliente. La propiedad de IBM a nivel de JVM com.ibm.ws.websvcs.transport.enableProxyTunnel vale false de forma predeterminada; una dirección por cliente no habilita el túnel. Los valores de transporte HTTP de un conjunto de políticas también anulan los valores programáticos, y estos anulan las propiedades del sistema JVM.
Para el puerto existente seleccionado, IBM documenta esta configuración por cliente antes de la invocación:
import javax.xml.ws.BindingProvider;
BindingProvider binding = (BindingProvider) servicePort;
binding.getRequestContext().put("https.proxyHost", "proxy.example");
binding.getRequestContext().put("https.proxyPort", "8080");Las claves HTTPS se aplican a los extremos HTTPS; para HTTP use las claves IBM HTTP correspondientes. Un extremo SOAP público permitido puede usar una dirección HTTP de la lista de proxies HTTP solo después de que la política aplicable y los controles de túnel lo permitan y de que no haya ninguna cuenta de proxy configurada en esos niveles. La autenticación del proxy tiene propiedades HTTP/HTTPS proxyUser y proxyPassword independientes de las credenciales del servicio SOAP.
Estas son extensiones de WebSphere. Un mapa de BindingProvider en Metro, CXF u otra implementación no hace portables esas cadenas.
Mantenga las distintas rutas concurrentes en objetos de cliente configurados adecuadamente en lugar de reescribir un contexto de puerto compartido mientras hay llamadas en curso. Así la dirección queda acotada al cliente real sin tratar todos los controles JVM de su entorno como locales al cliente.