- 浏览: 82362 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
neptunecai:
2.创建nutch2.1的编译环境 这部分能详细些吗?比如:T ...
Nutch2.1 in eclipse
由于自己最近正在学习REST,并需要使用Restlet做ROA的开发。所以把自己的一些事件心得写下,以便以后查阅,也希望可以帮助到一些同学。
首先Rest的概念就不提了。主要就是讲关于如何更好,更简单的利用http协议中的一些基本方法,做统一接口,来实现我们基于资源的架构开发。其中Restful web service 书中也说道。很多时候我们都容易陷入把开发变复杂的情况,比如使用SOAP,这种特殊信封去包装我们的数据。而一些尝试开发Rest的人们,也容易由于经验的印象,陷入架构的变异,开发出Rest-RPC风格或者纯RPC风格的程序。而看了很多在java方面关于Rest原则的架构设计,觉得Restlet基本遵循了Rest的原则,而且相对比较简单。所以尝试拿来写一些简单程序开始入手。当然在Rest1.0时代也有很多达人写了很多实战例子。其中,在iteye社区中就有一位ajax达人写了长长33篇关于Restlet1.0的实例,其中较多都是结合spring使用。而本人几下Restlet2.0的一些实践例子,毕竟想把关于2.0方面的经验分享给大家,也因为1.0中的很多类在2.0中都已经废弃,而且现在官网上主要放着的是2.0和2.1的get started。总要与时俱进的嘛,哈哈。好了,言归正传,让我们开始吧。
Restlet2.0中最近的是从Restlet,Resource和respresentation三个包中展开。其他的一些都是富有一些特殊功能的类而其中基于Uniform和UniformResource的两个接口就是其中的核心。
这篇文章下的项目主要实现就是通过一个test,获取放入webapp中resource,并返回hello world的功能。该项目的名称我们命名为RestLetServlet。在开发之前,需要加入如下jar
org.restlet.jar(restlet核心包,不管是JEE或者是JSE都是必需的)
org.restlet.ext.servlet.jar(JEE下servlet专用包)
junit4.8.2.jar(用于编写单元测试,其实直接使用浏览器也是可以的。)
具体实现如下:
首先我们创建一个Resource。原本在1.0中时继承Resource这个类的。但是在2.0中Resource已经废弃,使用实现UniformResource接口的ServerResource类
这里使用Get的annotation,方便了对统一接口的指引和调用。而在1.0中,所有的Resource都要重写各种respresent方法才可以。如post->acceptRepresentation;put-> storeRepresentation;delete-> removeRepresentations等。
然后我们就要创建一个application类把resource放入其中。这里的application其实就是实现了Uniform接口的类。所以在服务端这边那两个接口是大头。很多子类都是从上面的两个接口演变出来的。
然后在web.xml下添加如下代码:
这样我们熟悉的服务端就建立完成了。
如上,我们的资源路径就定型了。是基于当前项目的RestLetServlet(而对应的application在这里是所有路径都可以的,在JSE下,这个路径就是各种Application的路径了。)下的getHello资源。把编写的项目放入tomcat或者任何servlet容器即可。
然后附上测试代码:
启动容器,然后使用测试代码运行,在console就可以看到hello world了。
这里的test其实就是模拟了浏览器的功能,所以其实也可以直接向浏览器URL地址栏输入上面的路径依旧可以得到hello world。
这里仅仅是实现了一个get方法的操作。而在webapp下,由于HTML4和HTML5本身设计上的限制。我们不能使用put和delete这两种方法。也不能使用header和options两个辅助方法。所以其他的一些在webapp大多这些方法的使用都是从post进行模拟出来。在restful web service下也指出这个是不得已的演变,只能使用RPC风格进行开发。希望在以后可以有其他的方法解决这个问题。
当然在基于java客户端的clientResource下,那些方法都是可以使用的。所以相对来说学习JSE的restlet可以对rest的核心和编程原则更加的了解和熟悉。不容易让自己走弯路。毕竟也有很多人开发webapp时,看到post可以解决所有的问题,于是就走向了以前开发webapp的老路了。而忽略了rest的真正意义。
首先Rest的概念就不提了。主要就是讲关于如何更好,更简单的利用http协议中的一些基本方法,做统一接口,来实现我们基于资源的架构开发。其中Restful web service 书中也说道。很多时候我们都容易陷入把开发变复杂的情况,比如使用SOAP,这种特殊信封去包装我们的数据。而一些尝试开发Rest的人们,也容易由于经验的印象,陷入架构的变异,开发出Rest-RPC风格或者纯RPC风格的程序。而看了很多在java方面关于Rest原则的架构设计,觉得Restlet基本遵循了Rest的原则,而且相对比较简单。所以尝试拿来写一些简单程序开始入手。当然在Rest1.0时代也有很多达人写了很多实战例子。其中,在iteye社区中就有一位ajax达人写了长长33篇关于Restlet1.0的实例,其中较多都是结合spring使用。而本人几下Restlet2.0的一些实践例子,毕竟想把关于2.0方面的经验分享给大家,也因为1.0中的很多类在2.0中都已经废弃,而且现在官网上主要放着的是2.0和2.1的get started。总要与时俱进的嘛,哈哈。好了,言归正传,让我们开始吧。
Restlet2.0中最近的是从Restlet,Resource和respresentation三个包中展开。其他的一些都是富有一些特殊功能的类而其中基于Uniform和UniformResource的两个接口就是其中的核心。
这篇文章下的项目主要实现就是通过一个test,获取放入webapp中resource,并返回hello world的功能。该项目的名称我们命名为RestLetServlet。在开发之前,需要加入如下jar
org.restlet.jar(restlet核心包,不管是JEE或者是JSE都是必需的)
org.restlet.ext.servlet.jar(JEE下servlet专用包)
junit4.8.2.jar(用于编写单元测试,其实直接使用浏览器也是可以的。)
具体实现如下:
首先我们创建一个Resource。原本在1.0中时继承Resource这个类的。但是在2.0中Resource已经废弃,使用实现UniformResource接口的ServerResource类
public class HelloResource extends ServerResource { @Get public String getHello() { return "Hello World"; } }
这里使用Get的annotation,方便了对统一接口的指引和调用。而在1.0中,所有的Resource都要重写各种respresent方法才可以。如post->acceptRepresentation;put-> storeRepresentation;delete-> removeRepresentations等。
然后我们就要创建一个application类把resource放入其中。这里的application其实就是实现了Uniform接口的类。所以在服务端这边那两个接口是大头。很多子类都是从上面的两个接口演变出来的。
public class HelloApplication extends Application { @Override public Restlet createInboundRoot() { Router router = new Router(getContext()); router.attach("/getHello", HelloResource.class); return router; } }
然后在web.xml下添加如下代码:
<servlet> <servlet-name>RestletServlet</servlet-name> <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class> <init-param> <!-- Application class name --> <param-name>org.restlet.application</param-name> <param-value>com.restlet.application.HelloApplication</param-value> </init-param> </servlet> <!-- Catch all requests --> <servlet-mapping> <servlet-name>RestletServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping>
这样我们熟悉的服务端就建立完成了。
如上,我们的资源路径就定型了。是基于当前项目的RestLetServlet(而对应的application在这里是所有路径都可以的,在JSE下,这个路径就是各种Application的路径了。)下的getHello资源。把编写的项目放入tomcat或者任何servlet容器即可。
然后附上测试代码:
public class HelloTest { @Test public void testGetHello() throws Exception { ClientResource resource = new ClientResource("http://localhost:8080/RestLetServlet/getHello"); resource.get().write(System.out); } }
启动容器,然后使用测试代码运行,在console就可以看到hello world了。
这里的test其实就是模拟了浏览器的功能,所以其实也可以直接向浏览器URL地址栏输入上面的路径依旧可以得到hello world。
这里仅仅是实现了一个get方法的操作。而在webapp下,由于HTML4和HTML5本身设计上的限制。我们不能使用put和delete这两种方法。也不能使用header和options两个辅助方法。所以其他的一些在webapp大多这些方法的使用都是从post进行模拟出来。在restful web service下也指出这个是不得已的演变,只能使用RPC风格进行开发。希望在以后可以有其他的方法解决这个问题。
当然在基于java客户端的clientResource下,那些方法都是可以使用的。所以相对来说学习JSE的restlet可以对rest的核心和编程原则更加的了解和熟悉。不容易让自己走弯路。毕竟也有很多人开发webapp时,看到post可以解决所有的问题,于是就走向了以前开发webapp的老路了。而忽略了rest的真正意义。
发表评论
-
jetty 对请求头的限制
2014-02-13 14:30 5703当浏览器发起请求时 出现http code 413 问题 fu ... -
java 最基础的设置介绍
2013-04-15 23:05 1283用java不长不短快5年了,最近在看一些基础的书籍,也想起很久 ... -
Hessian 初体验
2013-03-27 17:36 1197Hessian 官网:http://hessian.cauch ... -
Nutch2.1 in eclipse
2013-03-10 00:22 9464Nutch2.1 in eclipse 主要目的: 1. 将 ... -
LDAP connection issue
2012-10-23 16:25 1754Problem1: Sometimes we can not ... -
restlet2.0学习——请求超时设置
2012-09-26 11:01 2364一般,我们在请求一个rest service的时候,总是希望可 ... -
[转载]checkStyle使用手册
2012-08-23 20:28 6928Checkstyle是SourceForge下的一个项目,如名 ... -
[转载]高性能JAVA开发之内存管理
2012-08-13 21:53 1387这几天在找一个程序的bug,主要是java虚拟机内存溢出的问题 ... -
[转载]How to write LDAP search filters
2012-08-10 10:57 1438This document outlines how to g ... -
restlet2.0学习(extend)-restlet日志信息写入log4j中
2012-08-07 15:32 4055使用过restlet的人都知道,restlet使用的是JDK的 ... -
log4j级别输出
2012-08-03 11:12 4334我们知道: log4j.logger.XX cover ==& ... -
restlet2.x与restlet1.x交互
2012-08-01 10:01 1273在一般的情况下,我们使用restlet客户端向服务端发起请求时 ... -
log4j配置
2012-05-30 11:36 1442log4j.rootLogger 根路径下的所有logger输 ... -
Restlet2.0学习——简单WebApp多Application与表单提交
2012-05-23 23:16 3583之前我们提到过简单的WebApp实现,使用的是一个applic ... -
Restlet2.0学习——文件路径访问
2012-05-22 14:42 1231由于就是官方的实例照搬了一下,简单尝试没有问题。就先把代码贴出 ... -
Restlet2.0学习——文件路径访问+BASIC认证
2012-05-22 14:38 1781这篇主要是让我们学习对于一些静态页面如何更加简单有效的去访问他 ... -
对RAM做简单的池化实现
2012-05-22 13:59 1567首先由于项目的关系需要使用IBM的Rational Asser ... -
HTMLPOST和GET编码问题(深入篇)
2011-07-07 02:12 11449浏览器 IE/FireFox -------——----> ...
相关推荐
了解了这些基本概念后,你可以通过解压"restlet-jee-2.0.14"压缩包,查看源代码、例子和API文档,更深入地学习Restlet 2.0如何在Java EE环境中实现REST服务。这将有助于你开发出高效、灵活且易于维护的Web应用程序。
在本篇博文中,我们将深入探讨如何利用jQuery和Ajax技术与Restlet 2.0框架进行交互,实现对Restful资源的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,即CRUD操作。Restlet是一个开源的Java ...
在这个场景中,我们关注的是"restlet2.0+spring3.0+hibernate3.3"的整合,这是一个经典的Java Web开发组合,分别代表了RESTful API、服务层管理和持久化层的优秀实践。 首先,让我们深入了解每个框架的核心特性: ...
标题"restlet-jee-2.0.6.zip_Restlet 2..0_Restlet framework2.0_org.rest"表明这是一个针对Java企业版(Java EE)的Restlet框架2.0.6版本的压缩包,其中包含了与org.restlet相关的组件。 描述中的"restlet框架所需...
### RESTLET框架学习知识点 #### 一、RESTLET框架概览 - **RESTLET框架简介**:RESTLET是一个面向对象的Java开源框架,用于构建RESTful应用和服务。它旨在简化Web应用开发,允许开发者充分利用REST架构的优势。...
本项目是针对Restlet 2.1版本的学习笔记,包含了实际的项目代码,旨在帮助开发者更好地理解和应用Restlet框架。 在Restlet 2.1中,有几个关键概念和组件值得深入探讨: 1. **组件(Component)**:Restlet框架的...
本文将深入探讨如何使用Restlet来实现一个最简单的RESTful Web服务。 首先,了解REST的基本概念是必要的。REST强调的是资源的概念,通过URI(Uniform Resource Identifier)来标识,使用HTTP协议中的方法(如GET、...
restlet2.0 Restlet Caused by: java.lang.ClassNotFoundException: com.sun.syndication.feed.synd.SyndFeed java.lang.NoClassDefFoundError: com/sun/syndication/feed/synd/SyndFeed
总的来说,RESTlet自用2可能是一个基于RESTlet 2.0版本并结合Spring框架的个人项目,该项目可能涉及到了RESTful服务的开发、JAX-RS标准的实现以及Spring的集成。相关的学习资料,如"MHT"文件和"PPT",提供了理论知识...
android-restlet 一个非常简单的演示/教程,展示了如何在Android下使用Restlet和Gson库这是什么? 这是一个项目教程,可帮助您了解如何使用Restlet框架( )以及如何通过使用Gson Google框架( )。 您可以将该项目...
接下来,我们将通过一个具体的例子来学习如何在Java EE环境中使用JAX-RS实现RESTful服务。 1. **创建Java Web项目** 在开发环境中新建一个名为`RestService`的Java Web项目。 2. **添加必要的库文件** 将`%...
你将学习如何在Restlet应用中使用Spring的Bean,以及如何通过Spring MVC和Restlet的协同工作,实现更灵活和强大的REST服务。 总结以上内容,Restlet开发实例系列涵盖了以下几个关键知识点: 1. JAX-RS与Restlet的...
Restlet框架提供了更底层的REST服务实现,它不仅支持JAX-RS规范,还提供了自己的API。Restlet组件模型包括客户端和服务器端的部分,如代表资源的`Representation`、处理请求的`Resource`、管理网络连接的`Connector...
5. **更易用的API**:简化了API接口,降低了学习曲线,使得开发者能够更快速地集成和使用RESTlet。 6. **扩展性**:提供了丰富的扩展点,可以方便地添加自定义处理器、过滤器和组件,满足特定业务需求。 7. **文档...
REST是一种轻量级的架构风格,广泛应用于互联网应用的开发,它强调通过简单的HTTP方法(如GET、POST、PUT、DELETE)来操作资源,以实现高效、可扩展的网络通信。 RESTlet框架提供了客户端和服务器端的组件,使得...
通过本文的学习,我们了解了如何利用Spring框架整合RESTlet构建RESTful服务的基本过程。这种方式不仅简化了开发流程,还提高了服务的可维护性和扩展性。在后续的学习中,我们可以进一步探索更复杂的业务逻辑和服务...
同时,书中还介绍了Restlet框架2.0版,包括其主要特性和整体架构。 **第二部分 Getting ready to roll out**进一步深入,讲解了如何设计和使用Restlet representations,确保安全性,以及如何文档化和管理RESTful ...
在Restlet框架中,实现基本认证主要涉及到以下几个步骤: 1. **创建认证控制器**:首先,你需要创建一个类来处理认证逻辑。这个类通常会扩展`org.restlet.ext.httpclient.Authenticator`类,并重写`authenticate`...