原文地址:http://1.liangtao.sinaapp.com/?p=647

接上一篇文章REST|RESTful初步认识:

p=639">http://1.liangtao.sinaapp.com/?p=639之后,在接下来的了解中也遇到了一些问题,不太懂的Java WebService这一套体系结构,导致对一些技术术语是是而非,对于若干技术,若干规范没有一个总体上的认识。这篇文章即是对Java中RESTful
WebService架构相关规范,技术的认识。

Web Service

从表明上来看,Web service就是一个应用程序,它向外界暴露一个可以通过web进行调用的API(无关乎语言、平台)。

从深层次上看,Web service是一种新的web应用程序分支,他们是自包括,自描写叙述,模块化的应用。他遵循一定的技术规范和协议。因此WebService并非某种详细的技术,他更像是一种标准,实际上webservice就是W3C的标准:

Web Services是应用程序组件

Web Services使用开发协议进行通信

Web Services是独立的并可进行自我描写叙述

Web Services可通过使用UDDI来发现

Web services可被其它应用程序使用

对于Web Service先做以上认知就可以。

JWS

指的是与Web Service相关的JavaEE技术,全称就是Java WebService。

详细来讲,JWS含有例如以下的技术

JAX-WS:XML Web Service的JAVA API

JAX-RS:Java API for RESTful Web Services

JAXB:Java Architecture for XML Binding业界标准,依据XML Schema产生java类

JAXR:Java API for XML Registries提供了与多种类型注冊服务进行交互的API

SAAJ:松散耦合软件系统基于SOAP协议实现的基于XML消息传递的API规范。

StAX:Stream API for XML,和SAX不同,StAX使用基于流机制对XML文档进行分析和生成。

这里须要理解JAX-WS和JAX-RS的差别:

两者是不同风格的SOA架构。前者以动词为中心,指定的是每次运行函数。JAX-WS是面向消息的,每次请求的时候指定了详细的请求方法。比如:http://localhost:8080/demo/getStudentList。

后者是以名词为中心的,每次运行的时候指的是资源URI。

JAX-RS是面向资源的,每次请求仅仅对资源进行操作:增删改查,它规范定义了Java的RESTful风格(名词形式公布API)

JAXB是Java XML Binding,是JAX-RS 和JAX-WS底层使用的对象与XML进行转换的工具。

JAX-WS和JAX-RS都是用于实现JWS的,仅仅是两者风格不同,JAX-WS的实现基于SOAP协议,面向消息。

JAX-RS是对基于REST设计风格的Web Service提供API规范。关于REST可參考:http://1.liangtao.sinaapp.com/?p=639

JAX-WS和JAX-RS实现

支持JAX-WS服务规范的框架有:CXF,Axis,Xfile。

支持JAX-RS服务规范的框架有:CXF,Jersey,RESTEasy,Restlet。

整体框架图

说了这么多,附上总体框架图,在了解上述概念之后,再看此框架图会有一种原来如此的感觉,清晰思路。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGNvcmU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

Over!

Java RESTful Web Service相关概念的更多相关文章

  1. <<Java RESTful Web Service实战>> 读书笔记

    <<Java RESTful Web Service实战>> 读书笔记 第一章   JAX-RS2.0入门 REST (Representational State ransf ...

  2. Java Restful Web Service 学习指南

    Restful是一种架构style,目前常说的有restful web service, resultful http.现在热搜榜的微服务,大多数会采用Restful方式. JAX-RS 作为一个Re ...

  3. Java restful web service 开发入门

    可用的框架有不少,我用的是jersey. 直接上代码,其实,如果你会web service 这个restful的就很好理解了,自己跑一遍就OK了 用到的类 User.java package demo ...

  4. 【转】基于CXF Java 搭建Web Service (Restful Web Service与基于SOAP的Web Service混合方案)

    转载:http://www.cnblogs.com/windwithlife/archive/2013/03/03/2942157.html 一,选择一个合适的,Web开发环境: 我选择的是Eclip ...

  5. 使用Java创建RESTful Web Service

    REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...

  6. (转)接口自动化测试 – Java+TestNG 测试 Restful Web Service

    本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高.所用到的工具或类库有 T ...

  7. 使用Java创建RESTful Web Service(转)

    REST是REpresentational State Transfer的缩写(一般中文翻译为表述性状态转移).2000年Roy Fielding博士在他的博士论文“Architectural Sty ...

  8. 【转】 Build a RESTful Web service using Jersey and Apache Tomcat 2009

    Build a RESTful Web service using Jersey and Apache Tomcat Yi Ming Huang with Dong Fei Wu, Qing GuoP ...

  9. Building a RESTful Web Service Using Spring Boot In Eclipse

    一.构建restful web service 创建Maven的java web工程,maven的pom文件加入依赖包 创建包hello Greeting.java package hello; pu ...

随机推荐

  1. 把一个序列转换成非严格递增序列的最小花费 POJ 3666

    //把一个序列转换成非严格递增序列的最小花费 POJ 3666 //dp[i][j]:把第i个数转成第j小的数,最小花费 #include <iostream> #include < ...

  2. 千万别把js的正则表达式方法和字符串方法搞混淆了

    我们在字符串操作过程中肯定经常用了test() split() replace() match() indexof()等方法,很多人经常把用法写错了,包括我,所以今天细细的整理了下. test()是判 ...

  3. 单源最短路径-Dijkstra算法

    1.算法标签 贪心 2.算法描述 具体的算法描述网上有好多,我觉得莫过于直接wiki,只说明一些我之前比较迷惑的. 对于Dijkstra算法,最重要的是维护以下几个数据结构: 顶点集合S : 表示已经 ...

  4. Ubuntu14.04下安装QQ 国际版

    在/etc/apt/source.list文件中添加: deb http://packages.linuxdeepin.com/deepin trusty main non-free universe ...

  5. make subversion时出现neon报错 及 svn其他问题汇总(3ge )

    在make subvision时,出现以下错误提示: /usr/local/src/neon-0.29.6/src/ne_auth.c:781: undefined reference to`ne__ ...

  6. Tachyon框架的Worker心跳及Master高可用性分析

    0 概述 分布式框架中的Master-Slave类型,Slave节点负责工作的具体执行,Master负责任务的分发或者相关元数据的存储等.一般情况下,一个Master节点都会对应多个Slave节点,M ...

  7. 第二百二十天 how can I 坚持

    今天如愿去了凤凰岭,比想象中的好多了.山好陡,都没有爬到山顶,下山时山都有点黑了,有点恐怖. 凤凰岭啊.有时间还得再去趟. 下周去八大处.坚持. 看什么时候能把北京这些山爬完,然后 三山五岳. 不爽. ...

  8. Apache Spark shell的实例操作

    1.scala> val inFile = sc.textFile("./spam.data") 作用是将spam.data当作文本文件加载到Spark中,将spam.dat ...

  9. 【131】如何讲好PPT

    1 列提纲2 写稿子3 背稿子4 演练5遍,用自己的话说出来,最好和稿子一样,但不强求一样,关键要理解5 不一定要做,但是做好了会有很大提高,讲的时候也会很NB:有时间可以再演练几遍,录出来看看哪里需 ...

  10. McAfee VirusScan Enterprise

    企业版下载入口:  http://www.mcafee.com/cn/downloads/downloads.aspxGrant number:6240017-NAI6240018-NAI 下载Vir ...