2016-07-14 148 views
0

使用Apache Axis 1.4客户端通过代理访问Web服务时,我遇到了一个问题。AxisProperties代理设置在Axis 1.4中停止工作

起初,工作的事情,但在某些时候(还没有确定的时间间隔),代理只是停止工作,我开始越来越: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

我发现了这个问题。它必须处理电话的顺序。我的应用程序调用多个Web服务...有些需要代理服务器,有些则不需要。如果首先调用非代理服务,则在服务器重新启动后,AxisProperties使用默认值(不包含代理)。如果首先调用服务需要代理,那么它的工作正常。所以我把上面的AxisProperties块移到了UP之前,这样在进行任何调用之前就完成了。我还设置'http.nonProxyHosts'以包含不需要代理的服务。

我知道这项技术正在变老,它越来越难找到答案。我希望这能帮助那些暂时坚持1.4的人。