快速业务通道

使用Jersey和Apache Tomcat构建RESTful Web服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-16
t;name>bar</name></contact>"  http://localhost:8080/Jersey/rest/contacts/foo

一个通过 “foo” 识别的新联系人将添加到联系人存储库。您可以使用 URI /contacts 或 /contacts/foo 验证联系人集合或单个联系人。

使用Jersey和Apache Tomcat构建RESTful Web服务(9)

时间:2011-06-12 IBM Yi Ming Huang

使用 Jersey Client 与 REST 服务通讯

Jersey 还提供了一个客户端库,帮助 您与服务器通讯并对 RESTful 服务进行单元测试。该库是一个一般实现,可以 整合任何 HTTP/HTTPS-based Web 服务。

客户端的核心类是 WebResource 类。您可以使用该类根据根 URI 构建一个请求 URL,然后发送请 求并获取响应。清单 10 展示了如何创建 WebResource 实例。注意 WebResource 是一个大对象,因此只创建一次。

清单 10. 创建 WebResource 实例

Client c = Client.create(); WebResource r=c.resource ("http://localhost:8080/Jersey/rest/contacts");

第一个 Jersey 客户端示例将发送 GET 请求获取所有联系人并打印响应状态码和响应内 容,参见清单 11。

清单 11. GET 所有联系人并打印响应

ClientResponse response = r.get(ClientResponse.class); System.out.println( response.getStatus() ); System.out.println( response.getHeaders().get("Content-Type")  ); String entity = response.getEntity(String.class); System.out.println(entity);

清单 12 展示了另一个创建通 过 “foo” 识别的新联系人的示例。

清单 12. 创建一个联 系人

Address[] addrs = {  new Address("Shanghai",  "Ke Yuan Street") }; Contact c = new Contact("foo",  "Foo Bar", Arrays.asList(addrs)); ClientResponse  response = r   .path(c.getId())  .accept (MediaType.APPLICATION_XML)  .put(ClientResponse.class, c); System.out.println(response.getStatus());

注意 WebResource 实例的 API。它构建 URI,设置请求头,并在一行代码中调用请求 。内容(Contact 对象)将自动绑定到 XML。

清单 13 展示了检索通过 “foo” 识别的联系人(已上一个示例中创建)的最后一个示例然后 删除该联系人。

清单 13. 检索 “foo” 联系人并删除

GenericType<JAXBElement<Contact>> generic =  new GenericType<JAXBElement<Contact>>() {}; JAXBElement<Contact> jaxbContact = r   .path("foo")  .type(MediaType.APPLICATION_XML)  .get(generic); Contact contact = jaxbContact.getValue(); System.out.println(contact.getId() + ": " + contact.getName ()); ClientResponse response = r.path("foo").delete (ClientResponse.class); System.out.println(response.getStatus ());

注意,当您想获取 JAXB bean 响应时,您需要使用 Java 2 Platform, Standard Edition (J2SE) 中引入的范型特性。

使用 Jersey 客户端练习这些示例。您可以在资源包中找到更多样例代码(见 下载)。

结束语

Jersey 可以使用 Jersey 集成库与其他框架或实用工具 库集成。目前,Jersey 可以集成 Spring、Guice,还支持 ATOM 表示形式与 apache-adbera 的集成。在 Jersey 项目主页可以找到 API 和入门指南。

本文配套源码

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号