亲宝软件园·资讯

展开

java调用webService接口的代码实现

梦想周游世界 人气:0

什么是webservice接口

Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。

XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。

Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

UDDI (Universal Description, Discovery, and Integration) 是一个主要针对Web服务供应商和使用者的新项目。在用户能够调用Web服务之前,必须确定这个服务内包含哪些商务方法,找到被调用的接口定义,还要在服务端来编制软件,UDDI是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。

webservice接口和http接口的区别

http接口走http协议,通过请求路径来区分调用方法,请求报文一般是key-value形式的,返回报文一般是json串,常用的是get和post方法来请求。

webservice接口走的soap协议,通过http传输,请求报文和返回报文都是xml。Web Service的主要目标是跨平台的可互操作性。为了实现这一目标,Web Service 完全基于XML(可扩展标记语言)、XSD(XML Schema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。

http与soap的区别:
(1) http:标准超文本传输协议;soap:简单对象访问协议。
(2) 都是底层的通信协议,请求包的格式不同,http纯文本格式,soap包是XML格式。
(3) http只能传输纯文本数据, soap可以传递结构化的数据。
(4) soap相对http(post/get)要进行xml解析,速度可能会有所降低。

如何用java代码调用webservice接口

java代码调用webservice接口的方式有很多,我这里介绍使用axis调用webservice接口

// 第一步先导入依赖包

// 创建服务对象
Service service = new Service();
// 生成客户端,实例化调用变量
Call call = (Call) service.createCall();
// 设置超时时间
call.setTimeout(5000);
// 设置服务地址,指明远程调用的类, 设置url
call.setTargetEndpointAddress(new URL(url));
// 设置远程调用类中的方法,添加调用的函数的命名空间以及函数名称
call.setOperationName(new QName("命名空间","方法名"));
// 设置请求参数(根据服务端需要的参数设置例如需要一个参数名为Name的String类型)IN为输入 out 为输出 INOUT为输入输出
// call.addParameter("入参名", XMLType.XSD_STRING, ParameterMode.IN);
call.addParameter("入参名", org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
// 设置返回数据类型(接口出参类型,有时需要写)
// call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
// 调用webService获得返回的数据 转入一个Object[]数组,数组的元素就是转入参数的值
outXml = (String) call.invoke(new Object[] {inXml});
// 打印接口返回值
System.out.println(outXml);

接口出参是一个字符串,如何处理出参,获取到想要的数据,可以看下一篇文章:documentHelper解析xml获取想要的数据

加载全部内容

相关教程
猜你喜欢
用户评论