`

JAVA的WebService规范JAX-RS

 
阅读更多

REST是一种软件架构模式,只是一种风格,不是像SOAP那样本身承载着一种消息协议,(两种风格的web服务均采用HTTP做传输协议是因为HTTP协议能穿越防火墙,JAVA的远程调用RMI等是重量级协议,不能穿越防火墙),因此你也可以叫做REST是基于HTTP协议的软件架构。REST中重要的两个概念就是资源定位和资源操作,而HTTP协议恰好完整的提供了这两个要点,HTTP协议中的URI可以完成资源定位,GETPOSTOPTION等方法可以完成资源操作,因此REST完全依赖HTTP协议就可以完成Web服务,而不像SOAP协议那样只利用HTTP的传输特性,定位与操作由SOAP协议自身完成,也正是由于SOAP消息的存在,使得SOAP笨重。你也可以说REST充分利用了HTTP协议的特性,而不是像SOAP那样只利用了其传输这一特性(事实上大多数人提到HTTP协议就只会想到他能用于数据传输)。

REST对于HTTP的利用分为以下两种:首先是资源定位,这就是URI,这本身没有什么特别的,但要注意RESTHTTP的资源定位理解更加到位,也就是你的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风格的缺点。第二种就是利用HTTPGETPOSTPUTDELETE四种操作外加HEAD请求报头完成资源操作,有这几种最简单的操作任意组合就可以完成各种各样的复杂操作,当然这是REST的理念,事实上这样创建应用有点牵强。

REST是一种软件架构理念,现在被移植到Web服务上(因此不要提到REST就马上想到WebServiceJAX-RS只是将REST涉及风格应用到Web服务开发),那么在开发Web服务上,偏于面向资源的服务只适用于REST,偏于面向活动的服务。另外,REST简单易用,效率高,SOAP成熟度较高,安全性好。

 

REST提供的网络服务叫做OpenAPI,它不仅把HTTP作为传输协议,也作为处理数据的工具,可以说对HTTP协议做了较好的诠释,充分体现了HTTP技术的网络能力。目前GoogleAmazon、淘宝都有基于RESTOpenAPI提供调用。

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);
}

 

分享到:
评论

相关推荐

    jax-rs 2.1规范最终版-英文

    jax-rs 2.1规范最终版,英文原版。jax-rs规范定义了java平台Rest调用风格的WebService接口。

    JAX-RS包(内含1.0和1.4)

    web service rest(jax-rs)整合完整的Jax-rs组件包,内含2个版本,分别是1.0和1.4版本。

    java_webservice_JAX-RS.zip_cxf_jax_jax-rs_spring cxf

    在ssh架构中加入webservice服务,web服务使用Apache CXF,采用cxf+spring的方式发布web服务

    jax-ws jax-rs 分别创建soap和restful类型的webservice

    使用jax-ws和jax-rs ,maven、java、spring 分别创建soap类型的webservice和restful类型的webservice,文档附有代码

    java-jaxrs:Java JAX-RS示例集合

    Java JAX-RS示例 根据MIT许可获得许可。 请参阅文件LICENSE。 Java JAX-RS示例的集合。 示例包括用Java编写的代码。 链接 一般的 -用Java测试和验证REST服务 阿帕奇 (实现JAX-RS等)

    Spring:使用 Apache CXF 和 Spring Framework 的 WebService(JAX-WS 和 JAX-RS)

    春天 使用 Apache CXF 和 Spring Framework 的 WebService(JAX-WS 和 JAX-RS) Apache CXF: : Spring 框架: : 我想分享有关使用 Spring Framework 的 Web 服务的更多信息。

    Restaurant-Server:使用Jersey Jax-RS的餐厅应用程序的Java后端

    餐厅预订服务器端使用Jersey Jax-RS的餐厅应用程序的Java后端描述我们已经为餐厅预订Web应用程序实现了Java后端我们使用的技术: Java 1.8 玻璃鱼球衣Jax-RS 冬眠MySQL的JUnit的邮差笔记: 我们还提供了一些使用...

    JAVA的WebService支持CXF与SAAJ第三版

    这个教程将了如何使用CXF开发WebService,包括JAX-WS、JAX-RS规范、数字证书、MTOM附件传输、异步调用、异常处理、使用Axis+Spring解决RPC/Encode的问题向旧规范JAX-RPC的兼容,第三版版教程在最一开始分别介绍了...

    messenger-rest:使用JAX-RS的Rest Webservice

    信使休息 使用JAX-RS休息Web服务。 球衣。

    spring-boot-cxf-jaxrs:使用Spring Boot和CXF JAXRS快速入门

    弹簧靴骆驼CXF JAXRS快速入门 本示例演示了如何基于将Apache CXF与Spring Boot结合使用。 快速入门使用Spring Boot来配置一个小的应用程序,其中包括启用了Swagger的CXF JAXRS端点。 重要的 该快速入门可以在2种...

    exemplo-jaxrs-jersey:在Jersey中使用WebService的示例

    DarchetypeGroupId=org.glassfish.jersey.archetypes -DarchetypeArtifactId=jersey-quickstart-webapp -DarchetypeVersion=2.27 -DgroupId=br.nom.penha.bruno.exemplo.jaxrs -DartifactId=exemplo-jaxrs-jersey -B...

    JAVA的WebService支持-CXF

    第三版已经发布,请到http://download.csdn.net/source/1508705下载!谢谢!

    JavaWeb服务【目录版】

    本书以示例驱动的方式详尽地介绍了XML Web服务(JAX-WS)和RESTfulWeb服务(JAX-RS)二者所涵盖的Java相关API。. 《Java Web服务:构建与运行》以清晰、务实的方法讲述Web服务相关技术,提供了混合性的架构总结、...

    JAVA.WEB服务.构建与运行

     《Java Web 服务:构建与运行(影印版)》提供了对Java的API的一个全面介绍,包括针对XML Web服务的JAX-WS和针对RESTful Web服务的JAX-RS。《Java Web服务:构建与运行》通过提供混合架构概述、完整的工作代码示例...

    Java Web Services: Up and Running, 1st Edition

    This quick, practical, and thorough introduction to Java web services -- the JAX-WS and JAX-RS APIs -- offers a mix of architectural overview, complete working code examples, and short yet precise ...

    resteasy示例

    RESTEasy 项目是 JAX-RS 的一个实现,集成的一些亮点: * 不需要配置文件,只要把JARs文件放到类路径里面,添加 @Path 注解就可以了。 * 完全的把 RESTEeasy 配置作为Seam 组件来看待。 * HTTP 请求由Seam来提供...

    mochasoft-framework:摩卡软件的 java 开发框架

    mochasoft-framework 摩卡软件的 java 开发框架 ...Restful Service: JAX-RS 1.0 + Jersey/CXF,够标准,但直接使用Spring MVC能使架构更简单 **展现层:**JSP2.0且尽量使用JSP EL而不是taglib,万一要写taglib也用

    angular-java-rest:Angular + rest (Jersey2) + spring-jpa-data

    [JAX-RS 2.0 API] - - Jersey Restful WebService [Servlet3] - Servlet 3 沙发服务弹簧(angular-rest-service) -IOC - - 沙发持久性(angular-rest-dao) - ORM - 内存中的 DB 测试功能 GEB - 非常 Groovy...

    Java全栈工程师-Apache CXF

    本课程讲解CXF的JAX-WS方式开发WebService的服务端和客户端?本课程讲解CXF的JAX-RS注解方式开发WebService的服务端和客户端?本课程讲解SpringBoot整合CXF开发WebService

    BOS技术整理-05

    RS-独立发布 编写服务接口 打上@path配置路径 @get等请求方式 @Produces 生产者@Consumes 消费者 条件中 @PathParam 适用于@path上标识参数类型 客户端需要使用type 条件中 @QueryParam 适用于@path上标识不参数...

Global site tag (gtag.js) - Google Analytics