webservice入门(1)

时间:2023-03-09 17:06:35
webservice入门(1)

前段时间学习了webservice的用法,虽然只是一些简单的用法,但是如果久了还是会忘记的,所以将学到了记录下来。

一:schema和http协议。

   1.schema约束:

schema规范中:
. 所有标签和属性都需要有schema文件来定义
. 所有的schema文件都需要有一个id, 但在这里它叫namespace,
. namespace的值由什么来指定?
由targetNamespace属性来指定, 它的值是一个url(很有可能不存在)
. 如何引入一个Schema约束?
属性? : 用xmlns属性
属性值: 对应的schema文件的id(namespace值)
    eg:xmlns="http://www.w3.org/2001/XMLSchema"
. 如果引入的schema不是w3c组织定义, 必须指定schema文件的位置
. schema文件的位置由什么属性来指定?    
属性? : schemaLocation
属性值: namespace path
. 如果引入了N个约束, 需要给n-1个取别名

  例子:book.xsd

<xml version="1.0" encoding="UTF-8">
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.hotusm.com/bookSchema"
elementFormDefault="qualified"
>
<element name="书架">
<complexType>
<sequence maxOccurs="unbounded">
<element name="书">
<complexType>
<sequence>
<element name="书名" type="string"/>
<element name="作者" type="string"/>
<element name="售价" type="string"/>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema>

book.xml:

<xml version="1.0" encoding="UTF-8">
<书架 xmlns="http://www.hotusm.com/bookSchema"
xmlns:dd="http://www.w3.org/2001/XMLSchema-instance"
dd:schemaLocation="http://www.hotusm.com/bookSchema book.xsd"
>
<书>
<书名>JAVA 开发</书名>
<作者>hotusm</作者>
<售价></售价>
</书>
</书架>

  2.http协议:

1. 请求的组成:
      请求行(请求方式  path  http1.1)

  请求头

  请求体: 只有post请求有

2. 响应的组成
    响应状态行:

  响应头

  响应体 : 浏览器解析显示的数据

二:ws的一些基础知识:

.webservice相当于HTTP+?+?
? : xml
? : schema
.wsdl是什么?
webservice定义语言, 对应.wsdl文档, 一个webservice会对应一个唯一的wsdl文档, 定义了客户端与服务端发送请求和响应的数据格式和过程
.如何发布一个webservice?
定义SEI @webservice @webMethod
定义SEI的实现
发布: Endpoint.publish(url, SEIImplObject)
.如何请求一个webservice?
.根据wsdl文档生成客户端代码 jdk/cxf
根据生成的代码调用webService

三:webservice中的几个重要术语

  3.1: WSDL:web service definition language

直译 : WebService定义语言

. 对应一种类型的文件.wsdl
. 定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式
. 一个web service对应一个唯一的wsdl文档

  3.2SOAP:simple object  access protocal
  

直译: 简单对象访问协议

.是一种简单的、基于HTTP和XML的协议, 用于在WEB上交换结构化的数据
.soap消息:请求消息和响应消息
http+xml片断

  3.3SEI:WebService EndPoint Interface(终端)

直译: web service的终端接口,

. 就是WebService服务器端用来处理请求的接口

  3.4CXF:Celtix + XFire

一个apache的用于开发webservice服务器端和客户端的框架

上面就是最基本的ws的一些术语和使用到的另外一些技术了。