Restlet 2.2提供了Servlet和Spring的扩展,可以简单方便的将Restlet部署到Tomcat等环境中。
本文描述利用Restlet 2.2 Servlet扩展,实现到Tomcat环境的部署。
一、通过org.restlet.ext.servlet.ServerServlet 部署
1、用 Application实现
1)、创建一个继承 ServerResource的类
package org.teamlet.rest.component;
import org.restlet.resource.Get;
import org.restlet.resource.ServerResource;
public class ComponentResource extends ServerResource {
@Get
public String represent() {
return "hello, world";
}
}
2)、创建一个继承 Application 的类
package org.teamlet.rest.component;
import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;
public class ComponentApplication extends Application {
@Override
public synchronized Restlet createInboundRoot() {
Router router = new Router(getContext());
router.attach("/hello", ComponentResource.class);
return router;
}
}
3)、修改web.xml
<context-param>
<param-name>org.restlet.application</param-name>
<param-value>org.teamlet.rest.component.ComponentApplication</param-value>
</context-param>
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
4)、部署后,通过 http://127.0.0.1:8080/myservice/rest/hello 访问
2、用Component实现
1)、创建两个继承 ServerResource的类:方法同上
2)、创建两个继承 Application 的类:方法同上,resource类与相应的application对应
3)、创建一个继承 Component 的类: (注:这里one 和two 绑定到不同的application即可,我这里写的是同一个)
package org.teamlet.rest.component;
public class ComponentComponent extends org.restlet.Component {
public ComponentComponent() {
getDefaultHost().attach("/one", new ComponentApplication());
getDefaultHost().attach("/two", new ComponentApplication());
}
}
4)、配置 web.xml
<init-param>
<param-name>org.restlet.component</param-name>
<param-value>org.teamlet.rest.component.ComponentComponent</param-value>
</init-param>
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.restlet.ext.servlet.ServerServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
5)、部署后,通过 http://127.0.0.1:8080/myservice/rest/one 和 http://127.0.0.1:8080/myservice/rest/two访问
二、通过org.restlet.ext.servlet.ServletAdapter 部署
1、创建一个servlet类,继承HttpServlet
2、在servlet中创建一个Restlet实例trace,在handle方法中重写逻辑
public class TestServlet extends HttpServlet {
private ServletAdapter adapter;
public void init() throws ServletException {
super.init();
this.adapter = new ServletAdapter(getServletContext());
Restlet trace = new Restlet(this.adapter.getContext()) {
public void handle(Request req, Response res) {
getLogger().info("Hello World");
res.setEntity("Hello World!", MediaType.TEXT_PLAIN);
}
};
this.adapter.setNext(trace);
}
protected void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
this.adapter.service(req, res);
}
}
3、配置 web.xml
<servlet>
<servlet-name>RestletServlet</servlet-name>
<servlet-class>org.teamlet.rest.component.TestServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>RestletServlet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
4、说明这个方法通常用在spring环境中,下一篇介绍spring部署的时候会讲到到这个ServletAdapter的用法。
分享到:
相关推荐
看名字,有需要下jar包
org.restlet.ext.servlet-2.1.1.jar
com.noelios.restlet.ext.servlet_2.4.jar
org.restlet.ext.servlet-2.3.0.jar
org.restlet.jar
Restlet所需要的所有jar包 一次下载,以后高枕无忧!
它甚至提供一个适配器(adapter),使你可以在标准Servlet容器(如Apache Tomcat)内部署一个Restlet应用。 Restlet还提供两个HTTP客户端连接器(HTTP client connector)。它们一个是基于官方的HttpURLConnection类...
restlet 2.2 中缺少的jar之一,在例子中使用了这个jar
它甚至提供一个适配器(adapter),使你可以在标准Servlet容器(如Apache Tomcat)内部署一个Restlet应用。 Restlet还提供两个HTTP客户端连接器(HTTP client connector)。它们一个是基于官方的HttpURLConnection类...
sqoop-1.4.6.2.3.99.0-195.jar org.restlet-2.4.3.jar org.restlet.ext.servlet-2.4.3.jar
restlet相关文档
本文是对Restlet官方教程http://restlet.com/learn/tutorial/2.2/的中文翻译。
Restlet与Spring 集成
一个简单的Restlet开发框架的Basic认证的例子
restlet项目
Restlet Client插件是一款运行在chrome内核浏览器上的Web服务测试插件,该插件主要用于测试各种Web服务,能查看网站基本信息、浏览网页代码并能发送HTTP请求来测试网站Web服务,同时支持自动化API场景。用户在安装了...
jar包,官方版本,自测可用
使用restlet实现了最简单的restful webservice,可以直接部署运行。可以作为restful webservice开发的基础环境。