使用Apache Axis 1.4客户端通过代理访问Web服务时,我遇到了问题。
起初工作但在某些时候(尚未确定间隔)代理只是停止工作而我开始得到:UnknownHostException
以下是代码:
if (proxyHost != null && !proxyHost.isEmpty()) {
logger.warn("Using proxy server: " + proxyHost + " port " + proxyPort);
AxisProperties.getProperties().put("proxySet", "true");
AxisProperties.setProperty("http.proxyHost", proxyHost);
AxisProperties.setProperty("http.proxyPort", proxyPort);
if (proxyUser != null && !proxyUser.isEmpty()) {
logger.warn("User proxy user: " + proxyUser);
AxisProperties.setProperty("http.proxyUser", proxyUser);
AxisProperties.setProperty("http.proxyPassword", proxyPassword);
}
} //then make call
Stub binding = (Stub) new ServiceLocator().getServiceSoap(new URL(myUrl));
我错过了一个重点吗?
答案 0 :(得分:0)
我发现了这个问题。它与调用的顺序有关。我的应用程序调用多个Web服务...一些需要代理,一些不需要。在服务器重新启动后,如果首先调用非代理服务,则AxisProperties使用默认值,但不包括代理。如果首先调用该服务需要代理,那么它工作正常。所以我将AxisProperties块移到UP上方,以便在进行任何调用之前完成。我还设置了#http; nonProxyHosts'包括不需要代理的服务。
我知道这种技术正在变老,寻找答案变得越来越难。我希望这可以帮助那些暂时停留在1.4的人。