webservice 介绍
Web service 即web服务,它是一种跨编程语言和跨操作系统平台的远程调用技术即跨平台远程调用技术。
l 采用标准SOAP(Simple Object Access Protocol) 协议传输,soap属于w3c标准。Soap协议是基于http的应用层协议,soap协议传输是xml数据。
l 采用wsdl作为描述语言即webservice使用说明书,wsdl属w3c标准。
l xml是webservice的跨平台的基础,XML主要的优点在于它既与平台无关,又与厂商无关。
l XSD,W3C为webservice制定了一套传输数据类型,使用xml进行描述,即XSD(XML Schema Datatypes),任何编程语言写的webservice接口在发送数据时都要转换成webservice标准的XSD发送。
当前非SOAP协议的webService以轻量为首要目标,比如rest webservice也是webservice的一种方式。
(1)SOAP
soap协议是webservice的传输协议,即简单对象访问协议。Soap协议是xml格式,理解为基于http传输xml数据。Soap=http+xml
(2)WSDL
WSDL是webservice的使用说明书。根据wsdl去如何调用webservice。从下往上读,找到service服务视图,通过binding找到portType(服务类)。
WSDL 指网络服务描述语言(Web Services Description Language)。
WSDL是一种使用 XML 编写的文档。这种文档可描述某个 Web service。它可规定服务的位置,以及此服务提供的操作(或方法)。
WSDL 是一种 XML 文档
WSDL 用于描述网络服务
WSDL 也可用于定位网络服务
通过wsdl知道webservice如何调用。
(3)UDDI(了解)
UDDI统一描述、发现和集成协议是一个目录服务,存储了全球的webservice地址。
UDDI旨在将全球的webservcie资源进行共享,促进全球经济合作。
1.1 开发webService 三种规范
JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-RPC)、JAXM&SAAJ、JAX-RS。
@WebService-定义服务,在public class上边
targetNamespace:指定命名空间
name:portType的名称 接口名称
portName:port的名称
serviceName:服务名称
endpointInterface:SEI接口地址,如果一个服务类实现了多个接口,只需要发布一个接口的方法,可通过此注解指定要发布服务的接口。
@WebMethod-定义方法,在公开方法上边 operationName:方法名 exclude:设置为true表示此方法不是webservice方法,反之则表示webservice方法 @WebResult-定义返回值,在方法返回值前边 name:返回结果值的名称 @WebParam-定义参数,在方法参数前边 name:指定参数的名称 作用: 通过注解,可以更加形像的描述Web服务。对自动生成的wsdl文档进行修改,为使用者提供一个更加清晰的wsdl文档。 当修改了WebService注解之后,会影响客户端生成的代码。调用的方法名和参数名也发生了变化