`
iamweiming
  • 浏览: 39417 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Restlet 2.0入门(转)

 
阅读更多

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

首先要从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.restlt.firstSteps。 
在包中创建Resource类HelloWorldResource,代码如下: 

Java代码   收藏代码
  1. package com.sunny.restlt.firstSteps;  
  2.   
  3. import org.restlet.resource.Get;  
  4. import org.restlet.resource.ServerResource;  
  5.   
  6. /** 
  7.  * Resource which has only one representation. 
  8.  */  
  9. public class HelloWorldResource extends ServerResource {  
  10.   
  11.     @Get  
  12.     public String represent() {  
  13.         return "hello, world";  
  14.     }  
  15.   
  16. }  


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

接下来是Application类FirstStepsApplication: 

Java代码   收藏代码
  1. package com.sunny.restlt.firstSteps;  
  2.   
  3. import org.restlet.Application;  
  4. import org.restlet.Restlet;  
  5. import org.restlet.routing.Router;  
  6. public class FirstStepsApplication extends Application {   
  7.     @Override    
  8.     public synchronized Restlet createRoot() {     
  9.         // Create a router Restlet that routes each call to a     
  10.         // new instance of HelloWorldResource.     
  11.         Router router = new Router(getContext());     
  12.         // Defines only one route     
  13.         router.attachDefault(HelloWorldResource.class);     
  14.         return router;     
  15.     }     
  16. }    


FirstStepsApplication中将HelloWorldResource附加到Context上。 

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

Java代码   收藏代码
  1. package com.sunny.restlt.firstSteps;  
  2.   
  3. import org.restlet.Component;  
  4. import org.restlet.data.Protocol;  
  5.   
  6. public class FirstStepsMain {  
  7.     public static void main(String[] args) throws Exception {    
  8.         // Create a new Component.    
  9.         Component component = new Component();    
  10.         
  11.         // Add a new HTTP server listening on port 8182.    
  12.         component.getServers().add(Protocol.HTTP, 8182);    
  13.         
  14.         // Attach the sample application.    
  15.         component.getDefaultHost().attach("/firstSteps",    
  16.                 new FirstStepsApplication());    
  17.         
  18.         // Start the component.    
  19.         component.start();    
  20.     }            
  21. }  


主类会启动本地的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,在</web-app>前加入以下配置: 

Java代码   收藏代码
  1. <servlet>  
  2.     <servlet-name>RestletServlet</servlet-name>  
  3.     <servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>  
  4.   
  5.     <!-- FirstStepsApplication -->  
  6.     <init-param>  
  7.         <param-name>org.restlet.application</param-name>  
  8.         <param-value>com.sunny.restlt.firstSteps.FirstStepsApplication</param-value>  
  9.     </init-param>  
  10. </servlet>  
  11.   
  12. <!-- Catch all requests -->  
  13. <servlet-mapping>  
  14.     <servlet-name>RestletServlet</servlet-name>  
  15.     <url-pattern>/*</url-pattern>  
  16. </servlet-mapping>  


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

 

转自:http://sb33060418.iteye.com/blog/1340721

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics