webservice如何设置代理服务

来源:互联网 发布:淘宝保证金怎么退回 编辑:程序博客网 时间:2024/05/21 15:05


由于最近有客户需通过webservice接入我们这边的系统(Axis21.3),以前给接入包不行,问了客户那边的情况才知道他们那边是内网通过代理访问外网的。 
以前的client是通过插件自动生成的,所以直接在生成的stub类里面加上配置代理的参数就ok 

Java代码  收藏代码
  1. /** 
  2.      * Constructor that takes in a configContext  and useseperate listner 
  3.      */  
  4. public MessageTransportServiceStub(org.apache.axis2.context.ConfigurationContext configurationContext,  
  5.         java.lang.String targetEndpoint, boolean useSeparateListener)  
  6.         throws org.apache.axis2.AxisFault {  
  7.          //To populate AxisService  
  8.          populateAxisService();  
  9.          populateFaults();  
  10.   
  11.         _serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);  
  12.           
  13.       
  14.         configurationContext = _serviceClient.getServiceContext().getConfigurationContext();  
  15.   
  16.         _serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(  
  17.                 targetEndpoint));  
  18.         _serviceClient.getOptions().setUseSeparateListener(useSeparateListener);  
  19. //以下为通过配置文件判断是否使用代理,有使用的话设置参数  
  20.         Configuration config=new Configuration();  
  21.         if (config.getValue("isproxy").equals("true")) {  
  22.             ProxyProperties proxyProperties=new ProxyProperties();  
  23.             proxyProperties.setProxyName(config.getValue("host"));  
  24.             proxyProperties.setProxyPort(Integer.valueOf(config.getValue("port")));  
  25.             proxyProperties.setDomain(config.getValue("domain"));  
  26.               
  27.                 proxyProperties.setUserName(config.getValue("username"));  
  28.           
  29.            
  30.            proxyProperties.setPassWord(config.getValue("userpassword"));  
  31.   
  32.             _serviceClient.getOptions().setProperty(HTTPConstants.PROXY, proxyProperties);  
  33.             _serviceClient.getOptions().setProperty(HTTPConstants.HTTP_PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_10);  
  34.         }  
  35.       
  36.     }  

webservice是通过http端口走的,所以代理应该提供http端口,一开始客户提供了socks5端口,害的测试n久都没通过


转载自:http://jophy.iteye.com/blog/441372

0 0
原创粉丝点击