WebService学习笔记(一)

一.webService平台简介

xml+xsd,wsdl, soap是构成webservice平台的三大技术。

1.webservice简介

webservice是采用http协议传输数据,采用xml格式封装数据(xml当中说明远程调用服务对象的哪个方法,参数是什么,返回值是什么)的一种技术。

2.soap简介

soap(simple object access protocal):简单对象访问协议,他是一种轻量级的,简单的,基于xml的协议,他被设计为在web上交换结构化与固话的信息。

webservice通过http协议发送请求与接受结果的时候,发送的请求内容与接受的结果内容都通过xml格式来封装,并增加了一些特定的http消息头,以说明http消息的内容格式,这些特定的http消息头与xml格式内容就是soap协议。

3.wsdl简介

wsdl(web service description language)是基于xml的语言,用于描述webservice及其函数,参数,返回值,他是webservice客户端与服务端都能理解的标准格式,由于是基于xml的,所以既是机器可阅读的也是人可以阅读的。

wsdl文档保存在web服务器上面,通过一个URL就可以访问到他们,客户端要调用一个webservice服务之前要先知道该服务的wsdl文档地址,webservice服务商可以通过2种方式来暴露他们的wsdl文档地址,

              1. 注册到uddi服务器,以便其他人方便查看

              2.直接告诉客户端调用者

二.http与soap

soap是webservice使用的一种协议,它是在http协议基础上做的另一种协议,它与http协议的区别是。http传输的内容是HTML格式,soap传输的内容是xml格式的。



三.wsdl文档解析

wsdl:webservice描述文档

解析方式:从下而上

哈尔冰天气的wsdl文档

service:服务访问点的集合元素,元素的name属性很重要,调用时需要使用

            port:服务访问点元素的name属性调用时需要使用, binding属性指定了服务访问点和服务类绑定元素

            binding:把服务访问点和服务类绑定在一起,不需要关系元素的内部,要关心的就是他的type属性,这个属性指定了绑定的服务类xml元素(portType)

portType:具体的服务类 的元素,在portType内部有n个operation,这些operation在生成java代码的时候都会转为服务访问点所绑定类的方法,在客户端可以调用这些方法(operation),

message:输入输出消息体,分别对应服务端接收的参数与返回值,而消息的传输使用的是soap协议,他的请求体是xml格式的,这个xml文件是后约束的,对它的约束都在 types里面

约束



四.wsdl生成java代码

如何调用webservice服务端:

webservice实际上是通过网络根据soap协议来传输数据,我们不用自己去组装数据,当然我们也可以自己去组装消息体。

生成java代码步奏:

(1)创建一个空文件夹,打开控制台,切换至该文件夹

(2)wsimport:

                    参数:-s:生成源代码

                   -p:   生成代码之后的包名

              wsimport -s . -p com.csii.stub http://192.168.15.82:8099/hello?wsdl

(3)把代码拷贝到客户端的工程中

(4)客户端的调用


//1.创建服务访问点的name对象

WeatherWS ww=new WeatherWS();

//2.获得服务访问点绑定的类,使用get+port的名字(WeatherWSSoap),getWeatherWSSoap

WeatherWSSoap wws=ww.getWeatherWSSoap();

//3.调用服务端的方法(服务端访问点所绑定的类方法)

ArrayOfString result=wws.getWeather("3114", null);

List list=result.getString();

for(String str:list) {

System.out.println(str);

}


你可能感兴趣的:(WebService学习笔记(一))