WebService学习笔记一
01——Schema约束复习
1.1 schema约束
几个重要知识:
1.namespace
相当于schema文件的id
2.targetNamespace属性
用来指定schema文件的namespace的值
3.xmlns属性
引入一个约束,他的值是一个schema文件的namespace值
4 schemaLocation属性
用来指定引入schema文件的位置
book.xsd
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.slp.cn"
elementFormDefault="qualified">
<!-- <书架>
<书>
<书名></书名>
<作者></作者>
<售价></售价>
</书>
</书架>-->
<element name="书架"><!-- 第一个标签 -->
<complexType><!-- 标签体类型 复合类型 -->
<sequence maxOccurs="unbounded">
<element name="书">
<complexType>
<sequence>
<element name="书名" type="string"></element>
<element name="作者" type="string"></element>
<element name="售价" type="string"></element>
</sequence>
</complexType>
</element>
</sequence>
</complexType>
</element>
</schema> <!--
schema规范
1.所有的标签和属性都需要有schema文件来定义
2.所有的schema文件都需要一个id,在此处是叫namespace
3.namespace由什么来指定?
由targetNamespace属性来指定它的值是一个url(有可能不存在)
4.引入一个schema约束是
属性?:xmlns
属性值:http://www.w3.org/2001/XMLSchema 对应schema的id
5.如果引入的schema不是www3c指定的必须指定文件位置
6.schema文件的位置由什么属性来指定
属性: schemalocation
属性值:namespace path
-->
book.xml
<?xml version="1.0" encoding="UTF-8" ?>
<书架 xmlns="http://www.atguigu.cn"
xmlns:xsi="http://www.w3.org/2001/XMLSchema.instance"
xsi:schemalocation="http://www.slp.cn book.xsd">
<书>
<书名>JavaScript</书名>
<作者>老狼</作者>
<售价>28.00元</售价>
</书> </书架>
1.2 HTTP协议
几个重要知识:
1.请求的组成
请求行(请求方式,path,http1.1 )
请求头
请求体:只有post请求有
2.响应的组成
响应状态行
响应头
响应体:浏览器解析显示的数据
状态行:
格式:HTTP版本号 状态码 原因概述
举例:HTTP/1.1 200 OK
状态码用于表示服务器对请求的处理结果,它是一个三位的十进制数,响应状态码分为5类,:
100-199 表示成功接收请求,但要求客户端继续提交才能完成整个处理过程
200-299 表示成功接收请求并已完成整个处理过程 常用200
300-399 为完成请求,客户需进一步细化请求,例如,请求的类型已经移动一个新地址,常用302
400-499 客户端的请求有错误,常用404
500-599 服务器端出现错误 常用500
200 代表成功
302 代表让浏览器重新请求另一个资源
404 找不到请求的资源
500 服务器出现问题了
3.请求的过程
2.提出两个问题
1.网站的数据库中都保存了天气预报数据吗?
2.如果没有,那数据都存在了哪里?
3.这些网站是如何得到这些数据的呢?
3.关于Web Service的几个问题
3.1 Web service是什么?
1.基于Web的服务,服务端整出一些资源让客户端应用访问(获取数据)
2.一个跨语言、跨平台的规范(抽象)
3.多个跨平台、跨语言的应用间通信整合的方案(实际)
以各个网站显示天气预报功能为例:
气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server)而各大站点的应用就去调用他们得到天气信息并以不同的样式去展示(Webervice Client)
网站提供了天气预报的服务,但其实他们什么也没有做,只是简单的调用一下气象中心服务器上的一段代码而已。
http://www.webxml.com.cn/zh_cn/index.aspx


3.2 为什么要用Web service?
web service能解决:
跨平台调用
跨语言调用
远程调用
3.3 什么时候使用web service
1 同一家公司的新旧应用之间
2 不同公司的应用之间
分析业务需求,天猫网与中通物流系统如何交互?

3 一些提供数据的内容整合应用,天气预报、股票行情。
4.Web Service中的几个重要术语
4.1 WSDL:web service definition language
直译:WebService定义语言
1.对应一种类型的文件.wsdl
2.定义了web service的服务器端与客户端应用交互传递请求和响应数据的格式和方式
3.一个web service对应一个唯一的wsdl文件
4.2 SOAP:simple object access protocal
直译:简单对象访问协议
1.是一种简单的,基于http和xml的协议,用于在web上交换结构化的数据
2.soap消息:请求消息和响应消息
3.http+xml片段
4.3 SEI:WebService EndPoint Interface
直译:web service的终端接口
1.就是WebService服务器用来处理请求的接口。
4.4 CXF:Celtix+XFire
一个Apache的用于开发webservice服务端和客户端的框架
5.开发webservice
5.1 概述
开发手段:
--使用JDK开发(1.6及以上)
--使用CXF框架开发
组成:
--服务器端
--客户端
5.2 使用JDK开发WEBService
1)开发服务器端
web Service 编码
--@WEBService(SEI和SEI的实现类)
package com.slp.webservice.ws; import javax.jws.WebMethod;
import javax.jws.WebService; /**
* SEI:
* @author Administrator
*
*/
@WebService
public interface HelloWS { @WebMethod
public String sayHello(String name);
}
package com.slp.webservice.ws; import javax.jws.WebService;
@WebService
public class HelloWSImpl implements HelloWS { public String sayHello(String name) {
// TODO Auto-generated method stub
System.out.println("server sayHello()"+name);
return "hello"+name;
} }
--@WebMethod(SEI中的所有方法)
发布Web Service:
--Endpoint(终端,发布webservice)
package com.slp.webservice.ws.server; import javax.xml.ws.Endpoint; import com.slp.webservice.ws.HelloWSImpl; /**
* 發佈web service
* @author Administrator
*
*/
public class ServerTest { public static void main(String[] args) {
String address="http://localhost:8080/webService_01/hellows"; Endpoint.publish(address, new HelloWSImpl());
System.out.println("發佈成功");
} }
2)开发客户端
使用eclipse提供的web service浏览器访问
请求webservice并查看请求和响应消息(webservice浏览器)
创建客户端应用编码方式访问
-借助jdk的wsimort.exe工具生成客户端代码
wsimport -keep url //url为wsdl文件的路径
-借助生成的代码编写请求代码
WebService学习笔记一的更多相关文章
- WebService学习笔记系列(二)
soap(简单对象访问协议),它是在http基础之上传递xml格式数据的协议.soap协议分为两个版本,soap1.1和soap1.2. 在学习webservice时我们有一个必备工具叫做tcpmon ...
- Java WebService学习笔记 - Axis进阶(二)
上一篇 Java WebService学习笔记 - Axis(一) 前一篇博文中简单介绍了Axis的使用方法,这篇将介绍一些Axis的一些高级特性 Axis中Handler的使用 Handler ...
- Java WebService学习笔记 - Axis(一)
WebService 简介 实际开发中,很多系统都是基于历史遗留系统进行开发,有时,这些系统基于不同的语言,如C,C++,C#,java,PHP等等.为了实现历史系统的再利用,或向外部程序暴露调用接口 ...
- webservice 学习笔记 1
Webservice----------->跨语言服务调用 (视频学习总结) 1-1.有OA系统 需要添加一个功能,登录之后显示天气情况 此时可以使用Webservice eg1: 气象局自己有 ...
- WebService 学习笔记(一、概念及定义)
定义 WebService是一种服务导向架构(SOA service-oriented architecture)的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作. Web ...
- webservice 学习笔记
1.webservice的概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...
- WebService学习笔记系列(四)
今天主要来看看服务端的编写及发布. 服务端的编写主要包括三个步骤: 1.编写一个接口,即SEI(server endpoint interface) 2.编写接口的实现类,即SIB (server i ...
- WebService学习笔记系列(三)
网上有一些提供webservice服务的网站,我们要怎么调用呢? 今天来看个如何调用手机归属地查询服务.这个网站上提供了许多webservice服务,其中包括手机归属地查询服务,我们今天就用wsimp ...
- WebService学习笔记系列(一)
webservice主要是解决两个系统或者两个应用程序之间的远程调用,它提供了一种通过web方式访问的api,调用是跨语言.跨平台的. webservice的客户端与服务端进行交互的时候使用xml来传 ...
随机推荐
- db2 常用命令(二)
1. 打开命令行窗口 #db2cmd 2. 打开控制中心 # db2cmd db2cc 3. 打开命令编辑器 db2cmd db2ce ======脚本文件操作命令======= -- 执行脚本 ...
- C++STL之迭代器
迭代器 迭代器提供对一个容器中的对象的访问方法,并且定义了容器中对象的范围.迭代器就如同一个指针.事实上,C++的指针也是一种迭代器.但是,迭代器不仅仅是指针,因此你不能认为他们一定具有地址值.例如, ...
- [转]PhoneGap使用PushPlugin插件实现消息推送
本文转自:http://my.oschina.net/u/1270482/blog/217661 http://devgirl.org/2013/07/17/tutorial-implement-pu ...
- Java虚拟机详解05----垃圾收集器及GC参数
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- maven总结4
仓库.nexus 构件:在maven中,任何一个依赖(jar包).插件(maven-compiler-plugin-2.5.1.jar)或者项目输出(前面例子中运行mvn clean install ...
- 迷你DVD管理器项目
package chapter5; import java.util.*; public class MiniDVD { public static void main(String[] args){ ...
- java 12-1 StringBuffer类
线程安全(多线程讲解) 安全 -- 同步 -- 数据是安全的--效率低一些 不安全 -- 不同步 -- 数据不安全--效率高一些 安全和效率问题是永远困扰我们的问题. 安全:医院的网站,银行网站 效率 ...
- WebResource-asp.net自定义控件引用外部资源方法
rom:http://www.lmwlove.com/ac/ID879 在asp.net中开发自定义控件时,如果我们要用到图片,外部css,js等文件,那么最好的方式就是将这些文件作为自定义控件嵌入的 ...
- Redis集群环境的部署记录
Redis Cluster终于出了Stable,这让人很是激动,等Stable很久了,所以还是先玩玩. 一. 集群简单概念. Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施( ...
- [原创]CI持续集成系统环境--Gitlab+Gerrit+Jenkins完整对接
近年来,由于开源项目.社区的活跃热度大增,进而引来持续集成(CI)系统的诞生,也越发的听到更多的人在说协同开发.敏捷开发.迭代开发.持续集成和单元测试这些拉风的术语.然而,大都是仅仅听到在说而已,国内 ...