CXF客户端不在SSL请求中使用代理服务器来检索WSDL

时间:2015-01-22 16:06:35

标签: java ssl wsdl cxf http-proxy

我们在Java 1.6.0_45应用程序中有一个CXF(2.7.X)客户端(请参阅下面的代码) CXF客户端通过代理服务器调用Soap WS 尽管我们付出了很多努力,但CXF客户端会绕过代理直接向WS执行一些请求。

目前唯一的解决方案是强制代理JVM选项 但这种解决方案是不可接受的。

我们的代码中有pb吗? 我没有在互联网或CXF jira上找到任何线索。

// work only if i define proxy on jvm
/*
System.setProperty("http.proxyHost","87.65.43.21");
System.setProperty("http.proxyPort", "808");
System.setProperty("https.proxyHost", "87.65.43.21");
System.setProperty("https.proxyPort", "808");
*/

// initialize ws
URL wsdlLocation = new URL("https://12.34.56.78:8443/mockHelloWorldSoapBinding?WSDL");
QName qName = new QName("http://my.webservice.com", "HelloWorldService");
HelloWorldService helloWorldService = new HelloWorldService(wsdlLocation, qName);
HelloWorld port = helloWorldService.getHelloWorld();
HTTPConduit httpConduit = (HTTPConduit) ClientProxy.getClient(port).getConduit();

// add proxy parameters
HTTPClientPolicy policy = new HTTPClientPolicy();
policy.setProxyServer("87.65.43.21");
policy.setProxyServerPort(808);
policy.setAllowChunking(false);
httpConduit.setClient(policy);

// call ws
String response = port.sayHello("world");

0 个答案:

没有答案