Restlet 2.0 边学边写(一)第一步

本文详细介绍如何使用Restlet框架创建RESTful服务。从安装Restlet开始,逐步介绍如何创建资源类和应用类,最终实现并部署一个简单的hello, world应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关于Rest的起源和框架、入门资料的一些东西大家可以去看看ajax的博客,我直接从第一步开始吧。

首先要从[url]http://www.restlet.org/downloads/stable[/url]下载并安装Restlet,我安装的是2.0.10 Java EE 版。
安装完成后,docs里面是文档,lib里面是我们需要的类库,src是Restlet的源码。src目录下org.restlet.example包里面有很多的例子可以学习,说明可以看readme.txt。

接下来开始我们的第一个应用。
我的环境是JDK1.5+MyEclipse8.6+tomcat5.5.25。

1.创建项目
首先在eclipse中创建一个Web Project,命名为firstSteps,JavaEE级别选5.0。部署在tomcat中后,启动tomcat,通过浏览器访问[url]http://localhost:8080/firstSteps/[/url] 能看到首页。

2.导入包
从Restlet安装目录/lib中将org.restlet.jar拷贝至项目/WebRoot/WEB-INF/lib目录下,并加入Build Path中。

3.Let's Roll
在src目录下创建包com.sunny.restlet.firstSteps。
在包中创建Resource类HelloWorldResource,代码如下:

package com.sunny.restlet.firstSteps;

import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;

/**
* Resource which has only one representation.
*/
public class HelloWorldResource extends ServerResource {

@Get
public String represent() {
return "hello, world";
}

}

这就是我们的资源类,可以看到里面将represent方法注释成@Get,这表明资源类要将represent方法对外提供为Get访问。

接下来是Application类FirstStepsApplication:

package com.sunny.restlet.firstSteps;

import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;
public class FirstStepsApplication extends Application {
@Override
public synchronized Restlet createRoot() {
// Create a router Restlet that routes each call to a
// new instance of HelloWorldResource.
Router router = new Router(getContext());
// Defines only one route
router.attachDefault(HelloWorldResource.class);
return router;
}
}

FirstStepsApplication中将HelloWorldResource附加到Context上。

我们需要一个主类将Application附加到Host上并启动服务:

package com.sunny.restlet.firstSteps;

import org.restlet.Component;
import org.restlet.data.Protocol;

public class FirstStepsMain {
public static void main(String[] args) throws Exception {
// Create a new Component.
Component component = new Component();

// Add a new HTTP server listening on port 8182.
component.getServers().add(Protocol.HTTP, 8182);

// Attach the sample application.
component.getDefaultHost().attach("/firstSteps",
new FirstStepsApplication());

// Start the component.
component.start();
}
}

主类会启动本地的8182端口作为主机并将FirstStepsApplication附加到/firstSteps目录。

4.运行
运行FirstStepsMain类,会输出以下信息:
[list]
[*]2012-1-11 2:25:35 org.restlet.engine.http.connector.HttpServerHelper start
[*]信息: Starting the internal HTTP server on port 8182
[/list]
此时可以通过浏览器访问[url]http://localhost:8182/firstSteps/[/url]就可以看到提示信息“hello, world”了。
第一个Restlet应用运行成功。

5.在Servlet容器中运行
刚才只是我们运行一个主类来启动8182端口作为主机,很多人可能更希望在Servlet容器中启动服务。
5.1.导入包
想要在Servlet容器中运行Restlet,需要导入包org.restlet.ext.servlet.jar,同样可以在Restlet/lib目录下找到它。
5.2.配置RestletServlet
修改WEB-INF/web.xml,在</web-app>前加入以下配置:

<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>

<!-- FirstStepsApplication -->
<init-param>
<param-name>org.restlet.application</param-name>
<param-value>com.sunny.restlet.firstSteps.FirstStepsApplication</param-value>
</init-param>
</servlet>

<!-- Catch all requests -->
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>

5.3.部署运行
重新部署firstSteps,通过浏览器访问[url]http://localhost:8080/firstSteps/[/url]就可以看到首页变成提示信息“hello, world”了。
至此Servlet运行成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值