restful webservice构建小例子(restlet)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Restful Webservice构建

1)简述

主要使用restlet框架来实现rest风格的web服务构建。为什么选用restlet呢?主要从以下角度考虑:

1.完全的rest实现,完全抛弃Servlet API

2.轻量级框架,可作为j2se程序独立运行,又可运行在现有的web容器中

虽然struts2.0 spring3.0 jrs…很多都可以实现restful的应用,但是restlet可完美集成

在spring等框架中

3.服务端/客户端支持

*其他特性请参照restlet的官网翻译片段

2)具体实现

1.采用restlet框架来支持rest,封装dbcp数据库连接池来提供数据库访问。

2.对某一类性的资源采用同一application来管理,此类型的资源可能有若干个资源类

来支持。

下面以Rss新闻的服务来详细介绍下相关的实现以及配置

1.首先建立的一个web工程,这里采用了Tomcat服务器作为单机调试用

2.Web-inf/web.xml来注册restlet的监听

3.Web-inf/restlet.xml来定义application级别的restful url映射

以图中所示工程为例,当请求http://主机ip/UniteRestfulService/RssNewsPlaces的时候,restlet将会自动将此请求交由unite.client.service.rssNews.

RssNewsApplication类来进行处理

4.在application这一级别的类中(比如RssNewsApplication)类,可以对资源进

行进一步的映射配置

通过如上进一步的配置,http://主机ip/UniteRestfulService/RssNewsPlaces这个请求将会映射到RssNewsPlacesResource类;而http://主机ip/UniteRestfulService/RssNewsPlaces/{place}这个请求将会映射到RssNewsResource 类。(上面的这一步骤体现了restlet对url-资源这一rest概念的基本阐释)

mon.DbcpBean类利用dbcp对数据库访问进行了单例模式封装。能够保

证一定的数据库操作性能。

database.properties利用资源文件对数据库以及连接池做参数配置。

定义数据库地址,用户名密码,jdbc驱动类型,数据库连接池初始链接数,最大连数,最大闲置连接数,最大等待响应时间毫秒数等。

上面是一段使用DbcpBean的程序,检索了RssUrl表,将表中存在的地区名,以及该地区所对应的新闻链接地址读取出来。

6.回到RssNewsPlacesResource/RssNewsResource资源类

在*Resource资源类中,提供对资源的GET/PUT/POST/DELETE操作。Restlet提供多种方式的实现方式。比如注解方式,或者重写父类方法的方式等。

注解方式中,采用

类似这样的注解,来声明某个方法的属性等。

而重写父类方法方式也可以更加灵活。

部分省略

通过XstreamRepresentation或者JacksonRepresentation等restlet功能拓展类,将某实体类的实例转化为符合XML/JSON请求的数据类型的数据。

7.实际运行结果

URL: http://localhost:8080/UniteRestfulService/RssNewsPlaces对应的返回结果xml形

式呈现(截图为部分数据)

URL:http://localhost:8080/UniteRestfulService/RssNewsPlaces/北京对应的返回结果xml形式呈现(截图为部分数据)

通过xml/json方式,可以很方便的将返回结果提供给调用方进行使用;如果使用

restlet的客户端类,可以更加方便的将xml/json数据转换为对应的实体类。

3)总结

通过一个业务的实现,揭示了restlet的一个实际应用。同时保留对系统性能提高的可能性。比如集成spring,采用更高性能的数据库连接池等。同时restlet对敏感信息的保护机能等尚需完善。

相关文档
最新文档