本文主要是介绍Web Service漫游记(上)——SOAP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
什么是web service
web service(以下简称ws)是服务与服务,机器与机器之间交流沟通的技术,可以保证不同平台间的服务相互操作,很多不同语言开发的平台服务之前可以通过ws相互通信,这一方式使得ws可以跨平台和跨语言使用。
ws有三个重要的组成部件
-
UDDI
UDDI是Universal Description,Discovery,Integration的缩写,是一个基于XML的框架,可以发现,描述和集成ws服务。 -
WSDL
WSDL全称Web Service Description Language,其基于XML文件对ws服务进行描述,可以从WSDL文件中获取到服务名称、参数、服务地址等访问服务的信息,WSDL属于UDDI的一部分。 -
SOAP
SOAP全称Simple Object Access Protocol,是ws服务之间访问的协议,此协议基于xml。
ws服务基于SOAP协议通信,也是w3c推荐的服务通信方式,SOAP定义自己的安全特性使用上安全性较高,因为服务间是通过统一的协议通信,所以也有可以跨平台和跨语言的优点,但是因为这种协议定义了比较多标准,通信时比较消耗带宽和资源,会有比较慢的缺陷,而且也只有WSDL支持SOAP协议的服务发现。
ws除了基于SOAP协议,还有RESTful风格的实践,这章节主要介绍SOAP协议的方式。
Java实现
Java中ws api分为两类JAX-WS(SOAP)和JAX-RS(RESTful),而JAX-WS也可分为两种风格分别是RPC风格和Document风格,这两种风格之间最大的不同就是RPC风格每次会发送尽量多的元素,只有复杂参数类型时候RPC风格才会对参数进行xml格式的解释,而Document风格是每次以单独一个文件发送,无论参数是否复杂类型都会以xml格式进行解释。java中主要使用javax.jws包中的注解对ws服务进行实现。
复杂类型的xml格式的解释可以通过访问types下的schemaLocation查看。
<types>
<xsd:schema>
<xsd:import namespace="http://server.rpc.ws.clo.com/" schemaLocation="http://localhost:7999/ws/rpc/hello?xsd=1"/>
</xsd:schema>
</types>
首先需要创建一个ws服务接口
@WebService
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface HelloWorldRpc {@WebMethod@WebResult(name = "helloStr")String getHelloWorldString(@WebPa
这篇关于Web Service漫游记(上)——SOAP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!