我部署在 Weblogic 集群上的 Java 应用程序调用两个 Web 服务,如下所示。
• 它通过 HTTPS 将 SOAP 客户端请求发送到互联网上的外部应用程序。(通过 Axis 1.4 创建的 Java 类)
• 此后,它通过 HTTP 将 SOAP 客户端请求发送到内部应用程序(存在于连接到我的 LAN 的另一个节点上)。(通过 JAX-WS:Jdeveloper 向导创建的 Java 类)
为了到达第一个 WS,我必须使用以下代码为 Web 服务客户端设置 https 代理设置:
System.setProperty("https.proxyHost", myProxyIP);
System.setProperty("https.proxyPort", myProxyPort);
而第二个 Web 服务不需要此代理设置,因为它们已经可以在网络上访问。
我的问题如下:
如果我调用第一个服务(具有代理设置的服务),然后调用另一个服务,Axis 客户端会尝试使用相同的代理设置调用这些服务,即使我在调用之前从系统属性中删除了代理设置。即将通过写入来启动 2ns WS
System.setProperty("http.proxySet", "false");
System.getProperties().remove("http.proxyHost");
System.getProperties().remove("http.proxyPort");
AxisProperties.setProperty("http.proxyHost", null);
AxisProperties.setProperty("http.proxyPort", null);
我在某处读到使用 nonProxyHosts。但是我很困惑是否应该写
System.setProperty("https.nonProxyHosts","secws.secondwsint.com");
or
System.setProperty("http.nonProxyHosts","secws.secondwsint.com");
http转https,因为需要绕过的是HTTP,而我们设置代理的是HTTPS。
我还在一篇博客中读到:
AxisProperties.setProperty("https.proxyHost", "bla1.bla1");
AxisProperties.setProperty("https.proxyPort", "8080");
AxisProperties.setProperty("https.nonProxyHosts", "secws.secondwsint.com");
但再次困惑是使用 https.nonProxyHosts 还是 http.nonProxyHosts
建议在我的 java 程序中使用哪一个System.setProperty
or AxisProperties.setProperty
重要的是我应该使用 http 或 https 来编写该代码行
另外,还有其他选择吗?