Board logo

标题: Apache Wink 和 REST(2)Project Jersey [打印本页]

作者: look_w    时间: 2018-9-7 20:30     标题: Apache Wink 和 REST(2)Project Jersey

Project JerseyProject Jersey 是 Sun® 公司提供的、用于构建 RESTful Web 服务的、具有生产质量的双重授权(dual-licensed)开源 JAX-RS 参考实现。这意味着它不仅仅是一个参考实现,只提供允许开发人员轻松定制和扩展的 APIs。Jersey 作为 Sun 的 GlassFish 应用程序服务器下载的一部分提供。               
嵌入式容器Jersey 通常部署在一个 servlet 容器中,但不支持 Java 程序中的嵌入式操作模式。以嵌入式模式运行 JAX-RS 服务比较简单,只需几行代码。您还可以将这个可嵌入的容器轻松用于单元测试。                       
客户端 APIJersey 客户端 API 是一个复杂的、基于 Java 的高级 API,用于调用任何 RESTful Web 服务,而不仅仅是与 JAX-RS 兼容的服务。但是,JAX-RS 开发人员应该会发现 Jersey 客户端 API 似曾相识,使用方便。Jersey 客户端 API 宣称其拥有 3 个重要目标:                       
Jersey 客户端 API 还支持一个可插入 HTTP 实现(比如 HttpURLConnection 和 Apache HTTP 客户端)。总的来说,Jersey 客户端 API 允许您高效地实现一个基于 REST 的客户端解决方案。                       
清单 1 是一个 Jersey 客户端代码示例,它支持使用表单参数发送一个 POST 请求并接收一个作为 JAXB 对象的响应。                       
清单 1. Jersey 客户端代码
1
2
3
4
5
6
7
8
9
Form form = new Form();
f.add(“a”, “dim”);
f.add(“b”, “sum”);
Client client = Client.create();
WebResource resource =   client.resource(“http://localhost:8080/formpost”);
JAXBBean bean = resource.
    type(MediaType.APPLICATION_FORM_URLENCODED_TYPE).
    accept(MediaType.APPLICATION_JSON_TYPE).
    post(JAXBBean.class, form);




注意,有一点很重要:如果这段代码使用 HttpURLConnection 编写,则会涉及许多序列化表单变量并将响应反序列化给 JAXB bean 的工作。                       
侦听器框架Jersey 提供一个基于过滤器的侦听器框架,该框架允许注册两种类型的过滤器:                       
数据格式支持与其他 JAX-RS 实现一样,Jersey 提供一些 JAX-RS 扩展模块来支持常用格式,包括 Atom、JSON 和 MIME 多部分数据。Atom 支持需要 Apache Abdera 上的一个依赖项以及 jersey-atom-abdera 模块。                       
组件集成Jersey 目前对以下两个依赖项注入框架提供基于扩展的支持:Spring 框架和 Google Guice 框架。                       





欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0