Cliente de Web Service CXF a través de proxy

De ChuWiki

Si hacemos un cliente de Web Service usando CXF, puede suceder que tengamos que salir a través de un proxy que requiere autentificación. El código java para esto es el siguiente

// HelloService y HelloPortType son las clases de cliente generadas por
// wsdl2java de CXF a partir del fichero wsdl correspondiente.
HelloService hello = new HelloService();
HelloPortType helloPort = cliente.getHelloPort();

org.apache.cxf.endpoint.Client client = ClientProxy.getClient(helloPort);

HTTPConduit http = (HTTPConduit) client.getConduit();
http.getClient().setProxyServer("proxy");
http.getClient().setProxyServerPort(8080);
http.getProxyAuthorization().setUserName("user proxy");
http.getProxyAuthorization().setPassword("password proxy");
      

Algunos proxy no admiten "chunking", por lo que puede ser necesaria adicionalmente

http.getClient().setAllowChunking(false);