webservice客户端调用方法总结
1、AXIS调用
{
a、直接调用。{
适合比较那种返回比较简单的数据的service, 比如,天气预报,这些内容肯定可以通过一个很简单的xml来返回。
Service service = new Service() ;
Call call = (Call)service.createCall() ;
call.setTargetEndpointAddress(PntCodeTypeManager.getInstance().getTypeValue("TUXEDO_CONFIG", "URL")) ;
call.setOperationName("orderFlowSumReq") ;
call.addParameter("v-ORDER-FLOW-SUM-XML-REQ",org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN) ;
call.setReturnType(XMLType.XSD_STRING) ;
call.setUseSOAPAction(true) ;
String result = (String) call.invoke(new Object[]{xml}) ;
}
b、通过wsdl2java工具生成调用代码。{
打开控制台,进入axis2-1.4/bin目录
wsdl2java.bat -uri http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl -p ws.clinet.axis2
}
}
2、xfire调用
{
a、通过WSDL地址来创建动态客户端。
{
Client client = new Client(new URL("http://127.0.0.1:8080/XFire_demo/services/XFireServer?wsdl"));
Object[] results11 = client.invoke("sayHello", new Object[]{"Jadyer22"});
System.out.println(results11[0]);
}
b、通过服务端提供的端口来创建客户端
{
/**
* 通过Web服务端提供的接口来创建客户端
* @see 客户端必须提供一个与服务端完全一致的接口,包名也要一致
* @see 在本例中,需要在客户端(即该项目)中提供HelloService.java接口,以及Person和User两个POJO类
* @see 并且此时需要在项目中引入XFire 1.2 Core Libraries和XFire 1.2 HTTP Client Libraries
*/
XFireProxyFactory factory = new XFireProxyFactory();
//通过proxyFactory,使用服务模型serviceModel和服务端点URL(用来获得WSDL)
//得到一个服务的本地代理,这个代理就是实际的客户端
HelloService client = (HelloService)factory.create(serviceModel, serviceURL);
/**
* Invoke the service
* @see 调用服务的本地代理(即实际的客户端)中的方法,便得到我们需要的WebServcie
*/
/*--处理简单对象--*/
String serviceResponse = client.sayHello("Jadyer11");
System.out.println(serviceResponse);
/*--处理对象--*/
User u = new User();
u.setName("Jadyer99");
Person pp = client.getPerson(u);
System.out.println(pp.getName());
/*--处理List--*/
List<Person> personList = client.getPersonList(24, "Jadyer88");
for(Person p : personList){
System.out.println(p.getName());
}
}
c、基于XFire框架利用ant构建WebService的客户端程序 ,
详细配置:可参考博客http://blog.csdn.net/emailed/article/details/4267932
}
3、HttpClient调用
用到的jar文件:commons-httpclient-3.1.jar
{
然后定义一个PostMethod,这时需要指定web服务的Url;
PostMethod postMethod = new PostMethod(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx”);
然后把Soap请求数据添加到PostMethod中
byte[] b = soapRequestData.getBytes("utf-8");
InputStream is = new ByteArrayInputStream(b,0,b.length);
RequestEntity re = new InputStreamRequestEntity(is,b.length,"application/soap+xml; charset=utf-8");
postMethod.setRequestEntity(re);
最后生成一个HttpClient对象,并发出postMethod请求
HttpClient httpClient = new HttpClient();
statusCode = httpClient.executeMethod(postMethod);
String soapRequestData = postMethod.getResponseBodyAsString();
}
总结
针对某种工具搭建的Web Service服务可能有与其对应的更简单的调用方法,在这里没有做描述,上述的调用web服务的方法是通用的。
上述三种方法中使用httpclient应该是比较灵活,但是开发效率低,难度大,使用Xfire和axis2比较容易,开发速度快,但是axis2通用性不好,有的web服务用axis2不好用。httpclient和Xfire通用性比较好,鉴于以上特点推荐使用Xfire
- 浏览: 273045 次
- 性别:
- 来自: 深圳
最新评论
-
di1984HIT:
学习了~~~~
ibatis实现Iterate的使用 -
Emotion_小寳:
楼主辛苦了,东西很不错。你说的主键自增长应该是用的Oracle ...
ibatis实现Iterate的使用 -
xyc717:
xyc717 写道请问我这个是什么情况?
cmd.exe : ...
PowerShell实现从SVN检出JavaWeb项目并编译 -
xyc717:
请问我这个是什么情况?
cmd.exe : 2013-10-2 ...
PowerShell实现从SVN检出JavaWeb项目并编译 -
feigege:
sudo gedit /etc/vim/vimrc.tinys ...
解决ubuntu中vi不能正常使用方向键与退格键的问题
相关推荐
Java WebService CXF客户端调用和服务端的实现是企业级应用程序中常见的通信方式,它基于标准的SOAP(Simple Object Access Protocol)协议,提供了一种在分布式环境中交换信息的方法。CXF是一个开源框架,它简化了...
WebService客户端调用服务器数据库是分布式系统中常见的交互方式,它允许客户端应用程序通过网络与服务器上的数据库进行通信。本文将深入探讨这一技术,并基于提供的标签“源码”和“工具”来解析实现这一功能的关键...
客户端通过SOAP请求调用WebService是一种常见的跨平台通信方式,适用于各种编程语言。理解SOAP消息的结构和HTTP请求的原理,是进行此类通信的关键。在实际开发中,开发者通常会使用库或框架(如Java的JAX-WS,.NET的...
在本案例中,文件`ws_client03`可能包含了客户端调用WebService的代码示例,而`ws_server`则可能是WebService的服务端实现。通常,服务器端代码会定义服务接口和实现,然后通过一个容器(如Tomcat)部署,使其可以...
- **客户端HttpWebRequest方式**:这是一种较低级别的调用方式,直接使用C#的System.Net命名空间中的HttpWebRequest和HttpWebResponse类来构造HTTP请求和处理响应。这种方式灵活性较高,但需要手动处理XML解析和...
在开发WebService客户端时,有几种常见的实现方式: 1. **SOAP(简单对象访问协议)客户端**:SOAP是WebService最原始的数据交换格式,它基于XML,提供了一种标准的请求-响应模型。开发者可以使用SOAP库,如Java的...
在这个场景下,"Xfire客户端调用webservice jar包"是指Xfire客户端为了实现某些功能,如获取服务器数据或更新信息,需要调用Web服务的接口。这些接口通常以Java的jar包形式提供,方便开发者集成到他们的应用中。 ...
在QT环境下进行Web服务(Webservice)调用是软件开发中的常见需求,特别是当需要与Java环境下的服务器端进行交互时。...通过以上步骤,你可以构建出一个有效的Webservice客户端,实现与Java服务器的无缝通信。
在.NET环境中,调用Web服务(WebService)是常见的任务,特别是在构建分布式系统或者跨平台通信时。本示例将深入探讨如何使用客户端函数方法来调用WebService,这对于理解和实现相关功能至关重要。 首先,...
总的来说,使用Axis2客户端调用WebService接口是一种常见的开发实践,通过精简jar包可以优化项目的体积,提高部署效率。理解这个过程并掌握如何精简jar包,对于任何涉及到Web服务的开发工作都是十分有益的。
以上介绍了 WebService 的四种常见发布方式及其客户端调用方法。每种方式都有其特点和适用场景。CXF 以其强大的功能和与 Spring 的良好集成成为首选;XFire 虽然已经过时但仍然有其独特之处;Axis2 和 Axis1 分别...
在Java开发中,Web服务是实现跨平台、跨语言通信的一种常见方式,而WebService客户端的创建则至关重要。本文将深入探讨如何使用`wsimport`命令生成WebService客户端代码,并通过一个查询手机号码的实际示例来演示...
cxf开发webservice客户端和服务器端 cxf(Apache CXF)是一款开源的WebService框架,用于开发webservice客户端和服务器端。它提供了许多有用的功能,如自动生成服务桩、客户调用桩和WSDL文档等,使得开发webservice...
本文将详细介绍如何在Eclipse环境中,利用WSDL文件逆向生成WebService客户端项目的源码。 首先,WSDL文件是一个XML格式的文档,它描述了Web服务的接口、操作、消息格式以及服务的位置。这个文件是服务提供者发布的...
在IT行业中,开发Web服务是常见的任务之一,而MyEclipse作为一款强大的集成开发环境(IDE),对于Java Web项目的开发提供了强大的支持,包括创建和发布Web服务以及建立客户端进行调用。下面我们将深入探讨如何使用...
标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...
在Java中调用WebService客户端是开发中常见的任务,主要用于与远程服务器进行数据交互。这篇PDF文档主要介绍了四种调用WebService的方式:HttpGet、HttpPost、HttpSoap和Documentation,并且提供了一个使用Apache ...
2. **C#客户端调用**: 在C#中,我们可以利用.NET Framework提供的`System.ServiceModel`命名空间,尤其是`SoapHttpClientProtocol`类(在较新版本中,可以使用`System.ServiceModel.ClientBase<TChannel>`或`...
本文将详细介绍基于SOAP协议的远程WebService服务的三种常见调用方式,帮助开发者根据实际需求选择最合适的方法进行服务调用。 #### 一、直接通过Axis调用远程WebService Axis是Apache组织下的一个开源项目,它...