【发布时间】:2020-06-16 13:35:42
【问题描述】:
我有一个 WSDL 文件,我通过在 SoapUI 中使用 WSDL2Java 将它转换为 Java 代码,它工作正常,但现在我需要向它添加我公司的代理,所以每个 SOAP http 请求都会通过它(但不是其他 http 请求)。
我查看了有关同一问题的多个线程并找到了以下选项:
-
通过添加系统范围的代理
System.getProperties().put("proxySet", "true"); System.getProperties().put("https.proxyHost", "10.10.10.10"); System.getProperties().put("https.proxyPort", "8080");这对我不起作用,因为它会影响整个 jvm。
-
添加以下代码
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");我不知道如何使用。我生成的代码没有任何org.apache.cxf的痕迹,只有javax.xml.ws。
-
将此添加到我的端口配置中:
((BindingProvider) port).getRequestContext().put("http.proxyHost", "proxy@example.com"); ((BindingProvider) port).getRequestContext().put("http.proxyPort", "80");在这里,我使用了一个随机的不存在的代理,并期望得到任何类型的错误(超时、无效的代理等),但它却没有任何错误地通过。
【问题讨论】:
标签: java http proxy cxf jax-ws