java调用webService接口的代码实现
作者:梦想周游世界
什么是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获取想要的数据
到此这篇关于java调用webService接口的代码实现的文章就介绍到这了,更多相关java调用webService接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!