`
zhb8015
  • 浏览: 397211 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
Group-logo
Spring Roo杂谈
浏览量:0
社区版块
存档分类
最新评论

JAX-RS 简化 REST 学习

 
阅读更多

  最近一个项目用到了webservice,决定用rest来实现,发现这方面的中文资料真的是不多。经过自己一番辛苦,终于把项目搞定,在这里简单的自己的学习的过程记录一下,供入门的兄弟参考一下。

一、rest简介:  

  REST 是英文 Representational State Transfer 的缩写,有中文翻译为“具象状态传输”。REST 这个术语是由 Roy Fielding 在他的博士论文《 Architectural Styles and the Design of Network-based Software Architectures 》中提出的。REST 并非标准,而是一种开发 Web 应用的架构风格,可以将其理解为一种设计模式。REST 基于 HTTP,URI,以及 XML 这些现有的广泛流行的协议和标准,伴随着 REST,HTTP 协议得到了更加正确的使用。

二、实现方式:

  Apache 的 CXF 以及 JBoss 的 RESTEasy(待续)

  (RESTEasy)http://www.jboss.org/file-  access/default/members/resteasy/freezone/docs/1.1.GA/userguide/html_single/index.html

三、入门实例:

  

  http://developer.51cto.com/art/200912/172185.htm(网上很多)

  

  涉及原理及数据绑定:http://www.ibm.com/developerworks/cn/java/j-lo-jaxrs/ 一篇不错的文章

  

  jersey实例  Bookkeeping实例    这是两个不错的例子,大家有时间好好看看

四、看了上面的文章以后,感觉项目中只用到了rest其中的一小部分,还有好多东西值得认真学习一下,以便用到以后的项目中。

  下面是自己感觉在上面例子中没有提到的一些东西,贴出来供大家参考。呵,仅一家之言啊,有不对的希望大家能提醒小弟:)

  调用POST方法时传入实体类,并返回实例类的的写法,以及数据绑定、path映射多个参数。

  客户端:

  BankInterfaceAgent.java

  

  GenericType<VirementResultInfo> generic = new GenericType<VirementResultInfo>() {};//定义返回的类型(加入泛型)
  String id = "virement/" + clientSystemNo + "," + encryptKey +","+ isEncrypted +","+ bankCode;//"/"前为路径,后为参数,参数不能为空,为空则报错

 //根据返回状态判断:404未找到;415不允许访问;405字段定义的方法不被允许; (另有文章描述返回状态含义)
try {
  resultInfo = r.path(id)
       .accept(MediaType.APPLICATION_XML) //返回的接收类型
      .type(MediaType.APPLICATION_XML)//服务器入参类型,必传
      .post(generic,transactionInfo); //直接传送实体类
  } catch(Exception e) {

   。。。。。。。

  

  服务器端:

  BankServiceAgent.java

  //注意:数据传输时的序列化与反序列化由实例类绑定JAXBELEMENT实现,实体类必须绑定(在实例类中加入@XmlRootElement)

  @Path("/virement/{clientSystemNo},{encryptKey},{isEncrypted},{bankCode}/") //路径和参数,注意格式(符合jax-   rs311规范)
  @POST //方式
  @Consumes(MediaType.APPLICATION_XML) //传入参数形式定义
  @Produces(MediaType.APPLICATION_XML) //返回结果形式定义 
public VirementResultInfo virement( //直接返回实体类
@PathParam("clientSystemNo") String clientSystemNo,
@PathParam("encryptKey") String encryptKey,
@PathParam("isEncrypted") boolean isEncrypted,
@PathParam("bankCode") String bankCode,
TransactionInfo transInfo
) throws Exception
{
System.out.println("==========进入方法BankServiceAgent:virement():"+ (new Date(System.currentTimeMillis())) + "/n");
logger.info("==========进入方法com.iss.itreasury.bi.rest.services.virement()" + (new Date(System.currentTimeMillis())) + "/n");

VirementResultInfo resultInfo = new VirementResultInfo();

五、参考文档:

jsr311 API:https://jsr311.dev.java.net/nonav/releases/1.0/index.html

jersey实例:https://jersey.dev.java.net/

使用JAX-RS简化REST应用开发
http://www.bianceng.cn/Programming/Java/201101/23660_6.htm

Bookkeeping.rar实例在资源下载中。。。

好了,先写这么多,慢慢完善,大家如果有什么好的帖子要发上来啊,共同学习:)

分享到:
评论

相关推荐

    jax-rs jax-ws所需包,亲测可用

    JAX-RS允许开发者使用注解来定义Web服务接口,简化了开发过程。常见的实现有Jersey、RESTEasy和Apache CXF。 2. **JAX-WS**(Java API for XML Web Services)是Java平台上的SOAP(Simple Object Access Protocol)...

    JAX-RS之rest接口实例

    JAX-RS通过注解简化了REST服务的创建。主要注解包括: - `@Path`: 用于定义资源路径,如`@Path("/hello")`表示资源的URL路径。 - `@GET`, `@POST`, `@PUT`, `@DELETE`: 分别对应HTTP的四种基本操作,用于处理不同...

    JAX-WS API, JAX-RS API

    综上所述,JAX-WS和JAX-RS都是Java平台中处理Web服务的重要工具,但它们的侧重点不同。JAX-WS专注于SOAP协议的Web服务,而JAX-RS则面向RESTful风格的API设计。了解并熟练掌握这两个API,对于Java开发者来说,意味着...

    Jax-RS所需要的依赖jar

    在开发基于Java的RESTful Web服务...综上所述,“Jax-RS所需要的依赖jar”集合包含了构建、测试和部署JAX-RS REST服务所需的全部组件,对于Java开发者来说,这是一个宝贵的资源,可以帮助他们快速启动和运行REST项目。

    SpringMVC精品资源--JAX-RS &amp; SpringMVC supported maven buil.zip

    这个压缩包"SpringMVC精品资源--JAX-RS & SpringMVC supported maven build.zip"显然是一个关于这两个框架的学习资源集合,特别是针对使用Maven构建的项目。 首先,SpringMVC是Spring框架的一部分,它是基于模型-...

    JAX-RS+spring

    1. **集成方式**: 通常通过Spring的Servlet容器如Tomcat或Jetty来部署JAX-RS应用,Spring负责应用的上下文管理和依赖注入,JAX-RS处理REST接口。 2. **Spring REST**: 使用Spring MVC的`@RestController`注解创建...

    JAX-RS Extension

    1. **JAX-RS基础**:JAX-RS是Java标准JSR 311和JSR 339的一部分,用于简化创建RESTful Web服务。它通过注解如`@Path`, `@GET`, `@POST`, `@PUT`, `@DELETE`等,使得开发者可以直接在Java方法上声明HTTP操作。 2. **...

    JAX-RS入门jar包集合

    本资源“JAX-RS入门jar包集合”包含了开始学习和使用JAX-RS所需的基本库文件,这些jar包将帮助开发者快速搭建REST服务环境。下面我们将详细讲解JAX-RS的核心概念和关键组件,以及如何利用这些jar包进行实际开发。 1...

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

    JAX-RS 2.1规范的最终版发布于2017年7月13日,由编辑Pavel Bucek和Santiago Pericas-Geertsen负责,可通过邮件组jaxrs-spec@javaee.groups.io进行评论反馈。该规范的发布由Oracle Corporation支持,它进一步强化了...

    RESTful Java with JAX-RS 2.0

    JAX-RS(Java API for RESTful Web Services)是一个Java标准,它简化并促进了RESTful Web服务的开发。JAX-RS 2.0作为该标准的更新版本,引入了新的注解和方法来支持RESTful服务的构建。从定义资源到处理HTTP请求,...

    java_webservice_JAX-RS.zip_cxf_jax_jax-rs_spring cxf

    JAX-RS通过注解简化了服务的开发,例如`@Path`定义服务端点,`@GET`、`@POST`等定义HTTP方法。 **3. Apache CXF** Apache CXF是一个开源的Web服务框架,它支持SOAP(Simple Object Access Protocol)和RESTful两种...

    使用 JAX-RS 简化 REST 应用开发

    REST 简介 REST 是英文 Representational State Transfer 的缩写,有中文翻译为“具象状态传输”。REST 这个术语是由 Roy Fielding 在他的博士论文 《 Architectural Styles and the Design of Network-based ...

    restful jax-rs

    通过采用JAX-RS标准,开发者能够更轻松地构建、测试和维护基于REST的服务。 #### JAX-RS与Java标注 JAX-RS的一个重要特点是利用了Java SE 5中引入的标注功能。这些标注简化了Web服务客户端和服务端的开发流程。...

    JAX-RS方式的RESTful Web Service开发

    JAX-RS是Java API for RESTful Web Services的简称,它是Java平台上的标准API,用于简化RESTful服务的开发。本文将深入探讨如何使用JAX-RS来构建RESTful Web Service,并结合实际代码示例进行解析。 首先,理解...

    restlet_jax-rs列子(客户端+服务端)

    RESTlet是一个开源框架,专门用于构建RESTful(Representational State Transfer)应用程序,而JAX-RS(Java API for RESTful Web Services)则是Java平台上的标准,用于简化创建RESTful服务。在这里,我们将深入...

    最新jaxrs-ri-2.26.zip

    在使用"jaxrs-ri-2.26.zip"时,你可以通过解压文件,查看示例代码、文档或运行测试来学习如何利用JAX-RS 2.26创建RESTful服务。这有助于你理解API的工作原理,以及如何在实际项目中应用这些技术。

    JAX-RS-demo:学术项目的 JAX-RS 演示

    总的来说,`JAX-RS-demo` 项目为学习和理解 JAX-RS 提供了一个实践平台,帮助开发者快速上手 RESTful Web 服务的开发。通过研究这个项目,你可以深入了解 RESTful 架构原则以及 JAX-RS 如何在 Java 中实现这些原则。

Global site tag (gtag.js) - Google Analytics