Restlet 2.2 借助Spring部署到Tomcat的方法
来源:互联网 发布:软件企业认定 招标 编辑:程序博客网 时间:2024/04/30 05:15
本文描述利用Restlet 2.2 Spring扩展,实现到Tomcat环境的部署。
一、利用 org.restlet.ext.spring.RestletFrameworkServlet 部署
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
<servlet> <servlet-name>restlet</servlet-name> <servlet-class>org.restlet.ext.spring.RestletFrameworkServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>restlet</servlet-name> <url-pattern>/rest/*</url-pattern> </servlet-mapping>
对应web.xml中的servlet-name,创建一个xml文件,名字为 restlet-servlet.xml (restlet就是在web.xml中的servlet的名字)。
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'><beans><bean name="root" class="org.teamlet.rest.component.ComponentApplication"/> </beans>
5)、部署启动后,访问 http://127.0.0.1:8080/myservice/rest/hello
使用Application这种方式太简单,下面的更适合大规模开发使用。
2、使用 org.restlet.ext.spring.SpringRouter
1)、上述配置不变的情况下,修改 restlet-servlet.xml
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'><beans><bean name="application" class="org.teamlet.rest.component.ComponentApplication"/> <bean name="root" class="org.restlet.ext.spring.SpringRouter"> <constructor-arg ref="application" /> <property name="attachments"> <map> <entry key="/one" value="org.teamlet.rest.component.ComponentResource" /><entry key="/two" value="org.teamlet.rest.component.ComponentResource" /></map> </property> </bean></beans>
2)、部署后访问 http://127.0.0.1:8080/myservice/rest/one 和 http://127.0.0.1:8080/myservice/rest/two
需要注意的是,原来application中的/hello 并没有加载,所有的加载都在 SpringRouter的属性attachments中。
3、使用 org.restlet.ext.spring.SpringBeanRouter
1)、上述配置不变的情况下,修改 restlet-servlet.xml
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'><beans><bean name="root" class="org.restlet.ext.spring.SpringBeanRouter"/> <bean name="/one" id="one" autowire="byName" class="org.teamlet.rest.component.ComponentResource" /><bean name="/two" id="two" autowire="byName" class="org.teamlet.rest.component.ComponentResource" /></beans>
2)、部署后访问 http://127.0.0.1:8080/myservice/rest/one 和 http://127.0.0.1:8080/myservice/rest/two
这样可以任意配置多个uri,每个uri可以动态的增加属性和引用其他bean。
因此,这个是最方便和灵活的!
二、利用org.restlet.ext.spring.SpringServerServlet 部署
上面虽然都可以实现restlet的资源与uri的映射,但是如果需要对component、application中的属性做设置就比较困难。
SpringServerServlet 提供了更加灵活的方式。
前面的CompoentApplication、ComponentResource 都不做任何修改。
1、修改 web.xml
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><display-name>Restful Webservice Component</display-name><description>Restful Webservice Component</description><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:config/application-context.xml</param-value><description>Spring config file locations</description></context-param><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener> <servlet> <servlet-name>RestletServlet</servlet-name> <servlet-class>org.restlet.ext.spring.SpringServerServlet</servlet-class> <init-param> <param-name>org.restlet.application</param-name> <param-value>application</param-value> </init-param> <init-param> <param-name>org.restlet.component</param-name> <param-value>component</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>RestletServlet</servlet-name> <url-pattern>/restlet/*</url-pattern> </servlet-mapping><session-config><session-timeout>30</session-timeout></session-config><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>
2、在WEB-INF目录下的 classes中创建 config 目录
3、在config目录中 创建application-context.xml 文件,内容如下:
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'><beans> <import resource="classpath:config/rest/rest-component-config.xml"/> <import resource="classpath:config/extension/*-context.xml"/></beans>
rest-component-config.xml 是为配置 restlet使用的文件,其他扩展的配置文件可以直接放入extension中(这个目录没有,需要的时候自己加)不用修改任何配置直接生效。
4、在config目录下创建 rest 目录
5、在 rest目录下创建 rest-component-config.xml 文件,内容如下:
<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'><beans><bean name="component" id="component" autowire="byName" class="org.restlet.ext.spring.SpringComponent"><property name="defaultTarget" ref="application" /></bean><bean name="application" id="application" class="org.teamlet.rest.component.ComponentApplication"> <property name="inboundRoot" ref="router" /></bean><bean name="router" class="org.restlet.ext.spring.SpringBeanRouter"></bean><bean name="/one" id="one" autowire="byName" class="org.teamlet.rest.component.ComponentResource" /><bean name="/two" id="two" autowire="byName" class="org.teamlet.rest.component.ComponentResource" /><bean name="/three" id="three" autowire="byName" class="org.teamlet.rest.component.ComponentResource" /><bean name="/four" id="four" autowire="byName" class="org.teamlet.rest.component.ComponentResource" /></beans>
6、部署之后,访问 http://127.0.0.1:8080/myservice/restlet/one 即可!
用这种方法部署restlet,可以根据需要定制 compoent、application、router等,提供的不同类型的服务。
- Restlet 2.2 借助Spring部署到Tomcat的方法
- Restlet 2.2 借助Servlet部署到Tomcat的方法
- restlet借助servlet部署到Tomcat
- Restlet - 基于Spring的Restlet开发实例
- 部署WAR包到TOMCAT的方法
- 将项目部署到Tomcat的方法
- spring-boot项目的创建以及部署到外部tomcat的方法
- Restlet 2.2中Restlet类的分析
- Restlet 2.2中Restlet类的分析
- dll部署到Tomcat方法
- 将spring boot部署到tomcat的记录
- Spring Boot项目部署到Eclipse下的tomcat
- 部署Tomcat的方法
- 将应用部署到Tomcat根目录的方法
- 将应用部署到Tomcat根目录的方法
- 将应用部署到Tomcat根目录的方法
- 手动部署项目到Tomcat的三种方法
- 将项目部署到tomcat的三种方法
- 什么是指令的吞吐率
- 编译mcrypt时,报错:You need at least libmhash 0.8.15
- POJ3621-平均最短路,二分
- jms创建实例
- Web Sites系列:使用Windows Azure的Web Sites和WebMatrix创建PHP和MySQL站点
- Restlet 2.2 借助Spring部署到Tomcat的方法
- ThreadLocal与synchronized
- Google 以图搜图 - 相似图片搜索原理 - Java实现
- 使用C语言扩展Python
- HDOJ3622-2SAT,二分
- 安装 Android SDK
- weblogic-jms实例
- 10大Android手机杀毒软件
- JNDI 源码解析