cliente - soapmessage example java
Conexiones SOAP a través de un proxy usando URLEndpoint (3)
Así no es como funciona el proxy. La forma en que funciona un proxy es que tomas tu URL normal:
http://example.com/service
y en lugar de buscar "example.com" y el puerto 80, el mensaje se envía a su servidor proxy ( http://theproxy.com:5555 ).
Java ha integrado el manejo del proxy utilizando las propiedades del sistema http.proxyHost y http.proxyPort.
Entonces en tu caso deberías hacer:
System.setProperty("http.proxyHost", "theproxy.com");
System.setProperty("http.proxyPort", "5555");
Entonces, su código debería, idealmente, "Just Work".
Aquí hay una página que documenta las propiedades del proxy.
Tuve que actualizar una aplicación Java anterior que solicita una respuesta SOAP desde un servicio web externo. Este servicio se encuentra fuera de nuestro firewall, lo que ahora requiere que pasemos por un proxy en lugar de acceder a la URL directamente.
Actualmente, la aplicación Java usa URLEndpoint que toma una cadena para la URL. Por lo general, cuando estoy llegando a una URL a través de un proxy, creo una URL como esta:
URL url = new URL("http", "theproxy.com", 5555, finalUrl);
El problema es que URLEndpoint solo toma una cadena para la url, intenté convertir la URL en una cadena usando toExternalForm () pero malformada la URL.
¿Alguna idea sobre una forma de evitar esto?
EDITAR: No puedo usar System.setProperty ya que esto se ejecuta con un montón de otras aplicaciones Java en tomcat.
segunda edición: no puedo establecer las propiedades de un sistema ya que anulará todas las demás aplicaciones que se ejecutan en el servidor, no puedo usar jsocks como el proxy que ejecutamos a través del proxy squid que no es compatible con socks4 / 5
Cualquier ayuda apreciada.
Use Apache HttpClient y haga lo que se muestra en este ejemplo.
Acerca del constructor de URL con configuración de proxy individual:
http://edn.embarcadero.com/article/29783
(lo siento, no tengo privilegios para comentar)