Restlet初看

翻看了一下宣称Restful的架构。选了Restlet进行学习。

花费了挺多时间和精力,觉得Restlet学习起来并不轻松。特别是极少的文档和示例说明让人常常很郁闷。

网上真正在说明Restlet的示例和剖析,就我自己看过的,也就是09年时候的某个博主写的20多篇的博客了。不过可惜的是时过境迁,Restlet至今已经更新到了2.2.3版本。已经发生了较大的变化,无法从过去的示例中得到足够的启发。同时也认为写的太过浅显。

写这个博客的目的不仅仅是分享一下自己浅薄的想法,更加重要的是能记录自己在学习过程中的思考和疑惑。 我想一个人学习和思考不如网络上的豪杰们一起更加有收获。如果有写的不对的地方,请大家留言。同时希望大家能保持相互的学习和交流。 拒绝谩骂和任何负面情绪的宣泄。谢谢合作。


首先是到http://restlet.com/ 访问restlet的官网首页。然后下载一份用户引导文档(rf-user-guide-2-2),两份源码和示例zip包:restlet-jee-2.2.3,restlet-jse-2.2.3.zip.

第一份文档是用于说明restlet整个架构和源码示例信息。另外两份需要配置并放置到本地工程中做开发学习。

解压restlet-jee-2.2.3.zip 发现其中有很多依赖的包。这些包并不是所有的示例所需的,自己根据示例的需要添加。包分为两类,一类是被文件夹单独存放的,这类是非restlet的第三方包,而且其他则是restlet的jar包:

配置本地的开发环境,jdk我使用的是1.6

-------------------------------------------------------------------------------------------------------------------------

大致看一下示例:


包大概分为三个部分:client,common,server.

作为一个BS结构的示例,server一定是服务端,先启动它,那么客户端的请求才能被处理。

随便打开一个示例服务端示例(示例包路径:org.restlet.example.book.restlet.ch07.sec1.sub5.MailServerAplication),找到服务启动的入口main方法:

public static void main(String[] args) throws Exception {
        Component mailServer = new Component();
        mailServer.getClients().add(Protocol.CLAP);
        mailServer.getServers().add(Protocol.HTTP, 8111);
        
        mailServer.getDefaultHost().attach(new MailServerApplication());
        mailServer.start();
    }

初学的时候是看不出这个过程的具体意义的。现在我们的目的是运行一个可用的示例大概对Restlet有一个印象。直接run as  ---> java application

看到控制台打印信息:

三月 31, 2015 3:22:45 下午 org.restlet.ext.nio.ServerConnectionHelper start
信息: Starting the internal nio [HTTP/1.1] server on port 8111

大概的意思是服务启动成功,端口是8111

现在再启动客户端:

直接run as  ----> java application:


控制台出现打印信息:

似乎是被返回了一个html页面。

这个示例就这样运行完了。用代码客户端可以执行,现在试试用浏览器:输入客户端代码中的URI路径:http://localhost:8111/accounts/chunkylover53/mails/123

一样也返回了整个页面。


到这里为止,我们大概知道restlet能干什么,它的确能做一个web应用。

而且似乎比起java的几个大框架更加快捷。


现在让我们看看代码。

服务端MailserverApplication:

从字面上的意思大概是这样的。还有一个类是我们没有打开查看的:MailServerResource:


发现一个标签,方法体内做的事情英文标注已经说的很清除了。

关键是这个@Get让人想起在客户端中出现的代码行:System.out.print(mailClient.get().getText());

发现在mailClient下还有其他的方法:post,put,delete.这些方法名称和标签是对应的。也就是还有@Put,@Post等标签。

到现在为止我们从这个示例中能提炼出来的显眼的对象有这么几个:Component,Application,Router,Resource.

这几个组件是通过Restlet内部的机制联合在一起的。具体怎么连结在一起,我们暂时无法全部知道。继续需要用户引导文档(rf-user-guider-2.2.3)的帮助.

这部分的内容留在下一篇博客中继续探索。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值