首先要从 http://www.restlet.org/downloads/stable下载并安装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,通过浏览器访问 http://localhost:8080/firstSteps/ 能看到首页。
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类,会输出以下信息:
- 2012-1-11 2:25:35 org.restlet.engine.http.connector.HttpServerHelper start
- 信息: Starting the internal HTTP server on port 8182
此时可以通过浏览器访问 http://localhost:8182/firstSteps/就可以看到提示信息“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,在前加入以下配置:
RestletServlet org.restlet.ext.servlet.ServerServlet org.restlet.application com.sunny.restlet.firstSteps.FirstStepsApplication RestletServlet /*
5.3.部署运行
重新部署firstSteps,通过浏览器访问 http://localhost:8080/firstSteps/就可以看到首页变成提示信息“hello, world”了。
至此Servlet运行成功。