我部署在 Weblogic Cluster 上的 Java 应用程序调用两个 Web 服务,如下所示。
• 它通过 HTTPS 向 Internet 上的外部应用程序发送 SOAP 客户端请求。(通过 Axis 1.4 创建的 Java 类)
• 此后,它通过 HTTP 将 SOAP 客户端请求发送到内部应用程序(存在于连接到我的 LAN 的其他节点上)。(通过 JAX-WS 创建的 Java 类:Jdeveloper 向导)
为了到达第一个 WS,我必须使用以下代码为 Web 服务客户端设置 https 代理设置:
System.setProperty("https.proxyHost", myProxyIP);
System.setProperty("https.proxyPort", myProxyPort);
而第二个 Web 服务不需要此代理设置,因为它们已经可以在网络上访问。
我的问题如下:
如果我调用第一个服务(具有代理设置的服务),然后调用另一个服务,则 Axis 客户端尝试使用相同的代理设置调用这些服务,即使我在我之前从系统属性中删除了代理设置即将通过写来inoke 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");
或者
System.setProperty("http.nonProxyHosts","secws.secondwsint.com");
http ot 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
或者AxisProperties.setProperty
重要的是,我应该使用 http ot https 来编写该代码行此外,还有其他选择吗?