`

(转)JAVA 调用Web Service的三种方法

 
阅读更多

1.使用HttpClient
用到的jar文件:commons-httpclient-3.1.jar
方法:
预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成。

复制代码
StringsoapRequestData="<?xmlversion=\"1.0\"encoding=\"utf-8\"?>"+
"<soap12:Envelopexmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"xmlns:soap12=\"http://www.w3.org/2003/05/soap-envelope\">"+
"<soap12:Body>"+
"<getCountryCityByIpxmlns=\"http://WebXml.com.cn/\">"+
"<theIpAddress>219.137.167.157</theIpAddress>"+
"</getCountryCityByIp>"+
"</soap12:Body>"+
"</soap12:Envelope>";
复制代码

然后定义一个PostMethod,这时需要指定web服务的Url;

PostMethodpostMethod=newPostMethod(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx”);

 

然后把Soap请求数据添加到PostMethod中

byte[]b=soapRequestData.getBytes("utf-8");
InputStreamis
=newByteArrayInputStream(b,0,b.length);
RequestEntityre
=newInputStreamRequestEntity(is,b.length,"application/soap+xml;charset=utf-8");
postMethod.setRequestEntity(re);

 

最后生成一个HttpClient对象,并发出postMethod请求

HttpClienthttpClient=newHttpClient();
statusCode
=httpClient.executeMethod(postMethod);
StringsoapRequestData
=postMethod.getResponseBodyAsString();

 

soapRequestData就是调用web服务的Soap响应数据,是xml格式的,可以通过解析soapRequestData来获得调用web服务的返回值。

2.使用Xfire
用到的jar文件xfire-all-1.2.4.jar, jdom-1.0.jar
方法:
定义一个Client对象,指定web服务的wsdl的地址

Clientc=newClient(newURL(“http://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl”));

 

调用Client对象的invoke方法,指定web服务的方法名,和参数,返回值是一个Object型的数组。
下面代码调用getVersionTime方法,这个方法没有参数用所以后一个参数使用new Object[0]。

Object[]results=c.invoke(“getVersionTime”,newObject[0]);

 

3.使用axis2
下载axis2-1.4
方法:
打开控制台,进入axis2-1.4/bin目录

wsdl2java.bat-urihttp://www.webxml.com.cn/WebServices/IpAddressSearchWebService.asmx?wsdl-pws.clinet.axis2


上述命令执行完后,会在当前目录下生成一个src目录,在src\ ws\ clinet\ axis2目录里生成XXXXCallbackHandler.java和XXXXStub.java两个文件。
wsdl2java 会根据wsdl文件生成web服务的调用接口,参数类,返回值的类。
在调用webservice的时候直接实例化一个XXXXStub的对象,然后调用web服务的方法就可以了。

4.总结
针对某种工具搭建的Web Service服务可能有与其对应的更简单的调用方法,在这里没有做描述,上述的调用web服务的方法是通用的。
上述三种方法中使用httpclient应该是比较灵活,但是开发效率低,难度大,使用Xfire和axis2比较容易,开发速度快,但是axis2通用性不好,有的web服务用axis2不好用。httpclient和Xfire通用性比较好,鉴于以上特点推荐使用Xfire。

 

原文:http://www.cnblogs.com/sun_moon_earth/archive/2009/02/03/1383308.html

分享到:
评论

相关推荐

    JAVA 调用Web Service的方法

    总的来说,Java调用Web Service涉及到多个环节,从理解协议和标准,到选择合适的工具和框架,再到实际的编码和测试,每个步骤都需要开发者具备扎实的理论基础和实践经验。通过以上知识点的学习和实践,你将能够熟练...

    Java调用.NET web service

    5. **调用Web Service**:使用Java客户端代理类的方法,传入参数,执行Web Service的远程调用。如果需要传递自定义类,确保这些类在Java和.NET中都有对应的序列化实现。 6. **处理响应**:Web Service调用完成后,...

    java调用java web service

    Java调用Java Web Service是Java开发中的一个常见任务,它涉及到Web服务的消费与交互,主要基于SOAP(Simple Object Access Protocol)协议。本篇将详细阐述这个过程,并结合标签“源码”和“工具”,探讨如何通过源...

    JAVA程序调用Web Service示例过程演示

    在IT领域,尤其是在软件开发与集成的过程中,Java作为一种广泛应用的编程语言,其调用Web Service的能力是连接不同系统和服务的关键技术之一。以下是对“JAVA程序调用Web Service示例过程演示”这一主题的深入解析,...

    ASP.net 中用C#调用Java web service 图解教程

    ASP.NET 中使用 C# 调用 Java Web Service ...在 ASP.NET 中使用 C# 调用 Java Web Service 需要了解 Web Service 的基本概念、使用 C# 调用 Java Web Service 和在 ASP.NET 中实现 Web Service 的客户端和服务器端。

    java 调用webservice的几种方法总结

    Java 调用 Webservice 的几种方法总结中,主要介绍了使用 JDK Web 服务 API、Axis 和 XFire 等方法来调用 Webservice。下面将对每种方法进行详细的介绍。 使用 JDK Web 服务 API 使用 JDK Web 服务 API 可以实现...

    XFire 1.2.6调用Web Service的几种方法

    XFire 1.2.6 调用 Web Service 的几种方法 XFire 1.2.6 是一个流行的开源 Web 服务框架,提供了多种调用 Web 服务的方法。了解这些方法对于开发高效、可靠的 Web 服务客户端非常重要。本文将详细介绍 XFire 1.2.6 ...

    JAVA调用.NETWeb Service完整代码

    这些类包含了调用Web Service所需的所有方法和数据类型。 3. 创建代理对象:在Java代码中,实例化生成的代理类对象,这将连接到.NET Web Service。 4. 调用服务方法:通过代理对象调用.NET Web Service的方法,...

    java 调用 web seervice 方法

    总的来说,Java 中调用 Web Service 可以通过多种方式实现,选择哪种方法取决于项目需求、性能考虑以及团队对特定库的熟悉程度。HttpClient 提供了基础的 HTTP 请求功能,适合简单的 Web Service 调用;Xfire 提供了...

    用java调用webservices的三种方式

    ### 用Java调用WebServices的三种方式 随着互联网技术的发展与成熟,WebServices作为一种标准的、跨平台的、基于XML的信息交换模式被广泛应用。在Java领域,调用WebServices通常涉及遵循一定的技术规范和标准。本文...

    Java调用Web服务(Web Services),如此简单

    本篇将重点讲解如何使用Java调用Web服务,特别是基于.NET平台的ASMX(ASP.NET Web Services)服务。 首先,`AccountService.asmx`和`Service.asmx`是.NET平台创建的ASMX Web服务文件。这些文件包含了定义服务的方法...

    JSP Java 调用Web Service

    JSP 调用天气预报Web服务,数据来源于中国气象局http://www.cma.gov.cn/ ,数据每2.5小时左右自动更新一次,准确可靠。包括 340 多个中国主要城市和 60 多个国外主要城市三日内的天气预报数据。

    java 调用天气web service的完整项目eclipse

    Java调用天气Web Service的完整项目是开发人员学习和实践中常用的一个示例,它展示了如何在Java环境中通过Eclipse IDE与Web服务进行交互,获取并处理天气数据。在这个项目中,我们将关注以下几个核心知识点: 1. **...

    java 调用 odi webservice

    我们可以使用 MYEclipse 创建一个新的 Web Service 项目,并选择 JAX-WS 框架生成 webservice。 在创建完毕后,我们可以看到生成的 webservice 类,如下图所示。 现在,我们可以使用这些类来访问 ODI 的 ...

    java 调用https webservice实例及axis包

    4. **调用Web Service**:使用生成的客户端代理类,通过其方法调用Web Service。注意,由于是HTTPS,所以在调用前可能需要建立SSL连接,处理身份验证等安全操作。 5. **处理异常**:在调用过程中,可能会遇到SSL...

    java调用webservices

    ### Java调用WebServices知识点详解 #### 一、概述 在现代软件开发中,WebServices是一种重要的技术,它允许不同应用程序之间通过网络进行通信。Java作为一种广泛使用的编程语言,在调用WebServices方面提供了丰富...

    一种跨平台调用Web Service服务的方法.docx

    一种跨平台调用Web Service服务的方法是针对现代软件开发中多平台兼容性需求的重要技术解决方案。Web Service是一种基于网络的、分布式的模块化组件,它提供了标准的接口,使得不同系统间可以进行数据交换和功能调用...

Global site tag (gtag.js) - Google Analytics