1.简介
W3C(World Wide Web Consortium)对于Web Services描述是通过万维网(World Wide Web’s)的超文本传输协议(HTTP)进行通信的客户端和服务端的应用程序。Web Services提供了各种平台和框架上运行软件程序之间相互操作的标准方法。
远程服务调用中RMI远程服务调用或者HttpInvoker服务都存在一个限制,只能在java程序之间调用,但实际生产上往往存在着各种语言如C++、C#、Visual Vasic等编写的程序,当前实现不同语言的程序间的调用最优解决方案是Web Services
,Web Services是一种跨编程语言和跨操作系统平台的远程调用技术,Web Services并不是对远程服务调用具体的实现,而是定义了一套远程服务调用的标准,主要包含:XSD
,SOAP
和WSDL
等内容。
1.XSD((XML Schema Datatypes):XSD是一套为了程序间交换而建立的关于标记符的语法规则。Web Services采用了XML
格式封装数据(XML
中说明了远程服务对象的方法,传递的参数以及服务对象的返回结果),XML容易建立和分析,并且独立于平台和语言。W3C为Web Sevices指定了一套传输数据类型,即XSD
。任何编程语言写的Web Services接口在发送数据时都要转换成Web Services
标准的XSD
发送。
2. SOAP(Simple Object Access Protocol):SOAP
是基于XML
的简易协议,应用程序在HTTP
上进行交换信息,SOAP1.1
提交到W3C,SOAP1.2
版本被2003年发布为W3C
标准。一条SOAP消息就是普通的XML文档,但必须要符合SOAP协议标准,完整的SOAP协议包含了几个元素:
- 必需的
Envelope
元素,可把此 XML 文档标识为一条 SOAP 消息。 - 可选的
Header
元素,包含头部信息。 - 必需的
Body
元素,包含所有的调用和响应信息。 - 可选的
Fault
元素,提供有关在处理此消息所发生错误的信息。
3.WSDL(Web Services Description Language):WSDL
是基于XML
语言,用于描述Web Services
及如何访问Web Services
的语言,它规定了服务的位置以及服务提供的方法,参数和返回值等。它是WebService
客户端和服务器端都能理解的标准格式。因为是基于XML
的,所以WSDL
既是机器可解析,又被人类可阅读的,这是一个很大的优点。
JAX-WS就是Web Services的一种具体实现方式,实现远程服务调用。
2.JAX-WS介绍
JAX-WS的全称是API for XML Web Services,JAX-WS跟JDK1.6及之后版本进行了绑定,使得开发java Web Services服务更加容易,创建一个JAX-WS服务可分为几个步骤:
——服务端
- 创建WebService服务端接口。
- 编写一个WebService服务接口的实现类。
- 发布WebService服务。
——客户端(测试)
测试WebService两种方式:
方法一:编写一个WebService客户端。
方法二:使用wsimport工具解析wsdl文件,生成客户端类来访问Web服务。
2.1 JAX-WS服务端
步骤一:创建WebService服务端的接口AccountService
。
//Service Endpoint Interface
@WebService(serviceName="AccountService",targetNamespace="http://corp.com/",name="AccountServiceSoap")
public interface AccountService {
@WebMethod
public void