由于最近有客户需通过webservice接入我们这边的系统(Axis21.3),以前给接入包不行,问了客户那边的情况才知道他们那边是内网通过代理访问外网的。
以前的client是通过插件自动生成的,所以直接在生成的stub类里面加上配置代理的参数就ok
/**
* Constructor that takes in a configContext and useseperate listner
*/
public MessageTransportServiceStub(org.apache.axis2.context.ConfigurationContext configurationContext,
java.lang.String targetEndpoint, boolean useSeparateListener)
throws org.apache.axis2.AxisFault {
//To populate AxisService
populateAxisService();
populateFaults();
_serviceClient = new org.apache.axis2.client.ServiceClient(configurationContext,_service);
configurationContext = _serviceClient.getServiceContext().getConfigurationContext();
_serviceClient.getOptions().setTo(new org.apache.axis2.addressing.EndpointReference(
targetEndpoint));
_serviceClient.getOptions().setUseSeparateListener(useSeparateListener);
//以下为通过配置文件判断是否使用代理,有使用的话设置参数
Configuration config=new Configuration();
if (config.getValue("isproxy").equals("true")) {
ProxyProperties proxyProperties=new ProxyProperties();
proxyProperties.setProxyName(config.getValue("host"));
proxyProperties.setProxyPort(Integer.valueOf(config.getValue("port")));
proxyProperties.setDomain(config.getValue("domain"));
proxyProperties.setUserName(config.getValue("username"));
proxyProperties.setPassWord(config.getValue("userpassword"));
_serviceClient.getOptions().setProperty(HTTPConstants.PROXY, proxyProperties);
_serviceClient.getOptions().setProperty(HTTPConstants.HTTP_PROTOCOL_VERSION, HTTPConstants.HEADER_PROTOCOL_10);
}
}
webservice是通过http端口走的,所以代理应该提供http端口,一开始客户提供了socks5端口,害的测试n久都没通过
分享到:
相关推荐
在动态调用WebService服务的场景下,反射可以用于根据配置文件中的URL动态加载服务代理类。首先,我们需要读取配置文件获取服务URL,然后使用Type类的GetMethod方法找到WebService的特定方法,最后通过Activator....
在VC++中调用WebService服务是一项常见的任务,尤其在跨平台通信、系统集成或扩展应用程序功能时。WebService是一种基于Web的、松耦合的服务,它使用标准的HTTP协议进行通信,并通过XML(eXtensible Markup Language...
C# _.NET_动态调用webservice的三种方式 在本文中,我们将讨论如何动态调用WebService的三种方式。在某些情况下,我们可能需要在程序运行期间动态调用一个未知的服务。这可以通过使用.NET Framework的System.Web....
在WinForm应用程序中调用WebService是一项常见的任务,它允许客户端应用程序与远程服务器上的服务进行交互,从而实现数据交换和功能扩展。以下是如何在WinForm中实现这一操作的详细步骤及涉及的相关知识点: 1. **...
### 使用HttpClient调用WebService接口详解 #### 一、概述 在现代软件开发中,Web服务(尤其是WebService)作为实现系统间交互的一种重要手段被广泛采用。WebService提供了通过HTTP协议进行远程过程调用的能力,...
在PB(PowerBuilder)中调用WebService是一种常见的技术操作,用于让PB应用程序与Web服务进行交互,实现数据的远程调用和交换。本篇将详细解释如何在PB中调用WebService,以及涉及到的相关知识点。 首先,理解...
在.NET框架中,调用Web服务接口...总结来说,.NET调用Web Service接口涉及到添加服务引用、生成代理类、配置连接、调用方法以及异常处理等步骤。在实际项目中,开发者需要结合具体的业务需求和接口文档进行细致的操作。
本主题的核心是"拼接XML调用WebService",这通常指的是通过构建XML字符串来构造请求,然后发送该请求到一个Web Service接口以获取响应。以下是对这个过程的详细解释: 1. **XML基础**:XML是一种结构化标记语言,它...
3. **通过反射机制调用WebService** #### 方法一:使用ServiceDescription与ServiceDescriptionImporter **步骤1:**从目标URL下载WSDL数据。 在.NET Framework中,我们可以使用`WebClient`类轻松地从远程服务器...
动态调用Webservice是指在运行时根据需要创建并执行Web服务的方法,无需预先编译或硬编码调用的详细信息。这种灵活性允许开发者在不完全了解服务接口的情况下使用服务,只需知道服务的URL和WSDL(Web服务描述语言)...
【C# 调用WebService的方法】 在.NET Framework的开发中,经常需要与其他系统或服务进行接口集成,其中一种常见的通信方式就是使用WebService。本文将详细介绍两种在C#中调用WebService的方法:静态引用和动态调用...
3. **调用方法**:然后,可以通过代理类实例调用WebService提供的方法。例如,如果WebService有一个名为`GetWeather`的方法,可以这样调用:`Dim result As String = myWebService.GetWeather(city)` 4. **处理结果...
在ASP.NET中,调用WebService主要通过`System.Web.Services.Protocols.SoapHttpClientProtocol`类的子类,如`SoapHttpClientProtocol`本身或其派生类(如`System.Net.WebClient`)。通常,我们会使用`AddWeb...
3. **调用服务方法**:通过生成的客户端代理类,你可以像调用本地方法一样调用WebService的方法,传递参数并接收返回值。 4. **处理结果**:接收到WebService的响应后,根据数据类型解析返回结果,如XML或JSON,再...
4. **调用Web Service方法**:通过代理类的对象,你可以像调用本地方法一样调用Web Service的方法,传递必要的参数。 以调用天气预报服务为例,假设服务的WSDL地址为`http://example.com/weatherforecast.wsdl`,你...
4. **编写调用代码**:在你的主程序中实例化代理类,然后调用对应的服务方法。这些方法通常接收XML格式的参数,并返回XML格式的结果。例如: ```cpp SoapClient client; client.connect("http://serviceurl"); //...
总结一下,Java通过客户端编程方式调用WebService主要涉及理解WSDL,生成客户端代理类,实例化并调用服务,处理异常,以及关闭连接。这种通信方式使得不同平台、不同语言的应用程序能够无缝地进行数据交换,是企业级...
LabVIEW 调用WebService 访问远程数据 在本篇文章中,我们将讨论如何使用 LabVIEW 调用 WebService 来访问远程数据。首先,我们需要了解为什么需要使用 WebService 来访问远程数据。传统的方法是使用链接字符串连接...
在.NET框架中,动态调用WebService是一项常见的任务,它允许开发者在运行时根据需要与Web服务进行交互,而无需在编译时明确指定服务接口。这通常涉及到使用System.Web.Services.ProtocolsSoapHttpClientProtocol类...