REST是一种软件架构模式,只是一种风格,不是像SOAP那样本身承载着一种消息协议,(两种风格的web服务均采用HTTP做传输协议是因为HTTP协议能穿越防火墙,JAVA的远程调用RMI等是重量级协议,不能穿越防火墙),因此你也可以叫做REST是基于HTTP协议的软件架构。REST中重要的两个概念就是资源定位和资源操作,而HTTP协议恰好完整的提供了这两个要点,HTTP协议中的URI可以完成资源定位,GET、POST、OPTION等方法可以完成资源操作,因此REST完全依赖HTTP协议就可以完成Web服务,而不像SOAP协议那样只利用HTTP的传输特性,定位与操作由SOAP协议自身完成,也正是由于SOAP消息的存在,使得SOAP笨重。你也可以说REST充分利用了HTTP协议的特性,而不是像SOAP那样只利用了其传输这一特性(事实上大多数人提到HTTP协议就只会想到他能用于数据传输)。
REST对于HTTP的利用分为以下两种:首先是资源定位,这就是URI,这本身没有什么特别的,但要注意REST对HTTP的资源定位理解更加到位,也就是你的Web服务的URI要能足够表意,例如http://www.fetion.com.cn/fetionwap/baby/getBabyInfoById?id=1,从URI上可以看出这个Web服务定位到的资源是查询飞信WAP宠物的信息,依据参数id值查询。那么可以继续出现以下层级:
http://www.fetion.com.cn/fetionwap/baby/storeroom/getStoreRoomById?id=1
http://www.fetion.com.cn/fetionwap/baby/storeroom/chicken/getCounts?id=1
我们看到REST风格的URI的目录层级足够表意,也就是资源定位,这种定位要求URI是唯一的。因为REST流行于互联网,网上的资源应该有唯一的资源位置(如:如片、视频)。当然,如果你的服务越复杂,URI可能就越长,越难理解,这也算是REST风格的缺点。第二种就是利用HTTP的GET、POST、PUT、DELETE四种操作外加HEAD请求报头完成资源操作,有这几种最简单的操作任意组合就可以完成各种各样的复杂操作,当然这是REST的理念,事实上这样创建应用有点牵强。
REST是一种软件架构理念,现在被移植到Web服务上(因此不要提到REST就马上想到WebService,JAX-RS只是将REST涉及风格应用到Web服务开发),那么在开发Web服务上,偏于面向资源的服务只适用于REST,偏于面向活动的服务。另外,REST简单易用,效率高,SOAP成熟度较高,安全性好。
REST提供的网络服务叫做OpenAPI,它不仅把HTTP作为传输协议,也作为处理数据的工具,可以说对HTTP协议做了较好的诠释,充分体现了HTTP技术的网络能力。目前Google、Amazon、淘宝都有基于REST的OpenAPI提供调用。
JAX-RS的API在javax.ws.rs.*包中,其中大部分也是注解。
我们先看一个较为简单的实例:
(1)IStudentServie.java:
package com.nantian.rest.server; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; @Path(value = "/student/{id}") @Produces("application/xml") public interface IStudentService { @GET @Path(value = "/info") Student getStudent(@PathParam("id") long id, @QueryParam("name") String name); @GET @Path(value = "/info2") Student getStudent(@QueryParam("name") String name); }
相关推荐
文件"java webservice CXF JAX-WS(SOAP) + JAX-RS(RESTfull).docx"可能包含了具体的示例代码和详细步骤,帮助理解如何在SSH环境中集成并使用CXF和JAX-RS。建议参考文档中的内容进行实践操作,以加深理解。 总的来说...
JAX-RS,全称Java API for RESTful Web Services,是Java平台上的一个标准,用于构建RESTful风格的Web服务。REST(Representational State Transfer)是一种轻量级、基于HTTP协议的设计模式,常用于实现分布式系统中...
在提供的文件中,"jax-ws-webService创建soap类型的webservice.docx"应该包含了详细的JAX-WS SOAP Web服务创建过程,而"使用jax-rs创建restful类型的webservice接口.docx"则详细阐述了JAX-RS RESTful Web服务的实现...
CXF是一个开源框架,它实现了JAX-RS规范,提供了方便的方式来构建和消费RESTful服务。本篇文章将深入探讨如何使用CXF和Spring框架实现基于JAX-RS的Web服务,包括基本的增、删、改、查操作。 1. **环境准备** - **...
1. **jaxws-api.jar**:这是JAX-WS的API规范JAR,包含了用于开发JAX-WS服务和客户端的接口定义。 2. **jaxb-api.jar**:Java Architecture for XML Binding (JAXB) API,用于XML和Java对象之间的转换,是JAX-WS的...
在压缩包中,"resteasy-jaxrs-3.0.6.Final"是核心库文件,它包含了Resteasy框架的所有必要组件,包括用于处理HTTP请求和响应的核心类、解析和序列化JSON或XML数据的提供者、以及对其他技术(如JPA、JAXB)的集成模块...
Java JAX-RS示例 根据MIT许可获得许可。 请参阅文件LICENSE。 Java JAX-RS示例的集合。 示例包括用Java编写的代码。 链接 一般的 -用Java测试和验证REST服务 阿帕奇 (实现JAX-RS等)
JAX-WS专注于SOAP和WSDL的Web服务,而JAX-RS(Java API for RESTful Web Services)则用于构建RESTful服务,它们在服务模型、消息格式和接口设计上有显著区别。 总结,JAX-WS是Java EE中用于构建SOAP Web服务的关键...
JAX-RS(Java API for RESTful Web Services)是Java平台中用于开发基于REST风格的WebService的规范。与JAX-WS不同,JAX-RS更加侧重于资源导向的服务设计,它支持多种数据格式,如JSON和XML。 1. **RESTful风格**:...
它不仅支持JAX-WS规范,还支持JAX-RS(Java API for RESTful Web Services),这使其能够同时满足传统SOAP服务和现代RESTful服务的需求。 CXF的核心组件是`org.apache.cxf.Bus`,它类似Spring的`ApplicationContext...
春天 使用 Apache CXF 和 Spring Framework 的 WebService(JAX-WS 和 JAX-RS) Apache CXF: : Spring 框架: : 我想分享有关使用 Spring Framework 的 Web 服务的更多信息。
5. **JAX-RS** 和 **Jersey**:JAX-RS是Java的RESTful Web服务API,而Jersey是JAX-RS的参考实现。在本项目中,Jersey用于创建和部署RESTful Web服务,使得服务端可以通过JSON或XML格式暴露数据,与客户端进行通信。 ...
JAX-RS通常更适合轻量级、资源驱动的应用场景,而JAX-WS则适合需要严格协议规范的大型企业级应用。 **六、JAX-WS的工具支持** 在实际开发中,IDE如Eclipse、IntelliJ IDEA都提供了对JAX-WS的支持,可以方便地生成...
CXF是一个流行的开源框架,用于创建和消费Web服务,支持多种协议和标准,如JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)。同时,JAXB(Java Architecture for XML ...
JAVA支持多种WebService规范,主要包括JAXM&SAAJ、JAX-WS(JAX-RPC)、JAX-RS等几种类型。 ##### JAX-WS - **定义**:JAX-WS(Java API for XML Web Services)是JDK 1.6自带的WebService规范之一,版本为2.1,底层...
JAVA的WebService支持主要围绕着三种规范进行:JAX-WS、JAXM&SAAJ和JAX-RS。这三种规范共同构成了JAVA环境中Web服务实现的核心框架。 首先,JAX-WS(Java API for XML Web Services)是JAVA平台中用于构建Web服务的...
餐厅预订服务器端使用Jersey Jax-RS的餐厅应用程序的Java后端描述我们已经为餐厅预订Web应用程序实现了Java后端我们使用的技术: Java 1.8 玻璃鱼球衣Jax-RS 冬眠MySQL的JUnit的邮差笔记: 我们还提供了一些使用...
CXF支持JAX-WS和JAX-RS规范,提供了丰富的API和工具,使得开发Web服务变得简单。 2. **Spring框架**:Spring是一个强大的Java开发框架,它提供了依赖注入(DI)和面向切面编程(AOP)等核心特性。Spring可以和CXF...
JAVA为WebService提供了三种核心规范,分别是JAXM&SAAJ、JAX-WS(包括之前的JAX-RPC)、JAX-RS。这些规范共同构成了JAVA在WebService领域的完整解决方案。 1. **JAX-WS** - JAX-WS(Java API for XML Web Services...
JAX-RS是用于创建RESTful Web服务的Java规范。REST(Representational State Transfer)是一种轻量级的架构风格,强调资源的获取和操作。JAX-RS通过注解简化了REST服务的开发: 1. **资源类**:通过在类上使用`@...