RestLet 作为一种对Restful的实现,基于JRS-RS实现规范,其思想有别于JRS-WS,它极大的方便了开发人员的效率,如果RestLet能和Spring集成在一起,则更能现示出RestLet在这方面的前劲势力,本篇文章主要以实例的形式对RestLet与Spring的集成进行解读:
下载所需jar包文件,其中包括:
JDK1.5、Tomcat6.x、 RestLet2.5、Spring2.5、eclipse3.4
下面我们就以一个简单的增加用户为例来完成本篇文章。
一、我们首先搭建一个 Web 环境authuser,然后创建一个Rest 的接口文件,作为客户端请求的入口。
package com.test;
public class UserRest{
public void addUser(String id,String userName,String pwd)/* 请求时值会被自动赋予 */{
//do actor operator
getResponse().setStatus(Status.SUCCESS_OK); //正确返回的状态码
getResponse().setEntity(new StringRepresentation("actor json value")); //实现要返回的值
}
}
二、RestLet 配置文件与spring集成是的配置
restletContext.xml
******************************************
<bean id="component.context"
class="org.springframework.beans.factory.config.PropertyPathFactoryBean" />
<bean id="component" class="org.restlet.ext.spring.SpringComponent">
<property name="defaultTarget" ref="application" />
</bean>
<bean id="application" class="cn.ceopen.xframework.core.base.rest.BaseApplication">
<constructor-arg ref="component.context" />
<property name="root" ref="restRoute" />
</bean>
<bean id="restRoute" class="org.restlet.ext.spring.SpringRouter">
<property name="attachments">
<map>
/* 可以存放多个key-value对,key可以自已定义,value值引用上面user bean id值 */
<entry key="/user" value-ref="userRoute" />
</map>
</property>
</bean>
***************************************
userContext.xml
<bean id="userRoute" class="org.restlet.ext.spring.SpringRouter">
<property name="attachments">
<map>
<entry key="/addUser">
<bean class="org.restlet.ext.spring.SpringFinder">
<lookup-method name="createResource" bean="userRest" /> /* userRest为spring实例化的Bean*/
</bean>
</entry>
</map>
</property>
</bean>
<bean id="userRest" class="com.test.UserTest" scope="prototype"></bean> /* scope必须为prototype */
*******************************************
三、在web.xml中的配置
/*首先应该让Tomcat启动时可以读到上面两文件,所以应该加入:*/
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:yourPath/**/*.xml;
</param-value>
</context-param>
/* 其次加入filter,listener */
/* 启动Spring容器 */
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
/* 中文编码 */
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/ws/*</url-pattern>
</filter-mapping>
/* restlet与spring集成servlet */
<servlet>
<servlet-name>restlet</servlet-name>
<servlet-class>com.noelios.restlet.ext.spring.SpringServerServlet</servlet-class>
<init-param>
<param-name>org.restlet.component</param-name>
<param-value>component</param-value>/* 此名字应与上面restletContext.xml文件中id为component同名 */
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>restlet</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
这样我们的配置工作就完成了,
四、下面我们可以测试一下我们所做的工作。
测试文件,即一个简单的html文件的AJAX调用即可:我们启名为home.html
<script type="text/javascript">
/* 增加用户信息 **/
function addAccount(){
var xmlHttp = ajaxObjHolder();
//注:此处参数要和addUser方法中的参数名一一对应,这样数值才能自动存入其中。
var params = "{\"id\" : \"001\",\"userName\" : \"zhw\",\"pwd" : \"123\"}";
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
if(xmlHttp.status == 200){
alert("results: "+xmlHttp.responseText);
}
}
};
// 注意此URL的写法,
// ws为 web.xml中配置的路径,
// user 为restletContext.xml文件中的attachments的key值,
// addUser为请求操作方法名
xmlHttp.open("POST","http://localhost:8080/authcenter/ws/user/addUser",true);
xmlHttp.setRequestHeader("Content-Type", "application/json");
xmlHttp.setRequestHeader("charset", "UTF-8");
xmlHttp.send(params);
}
/** obtain ajax object */
function ajaxObjHolder(){
var xmlHttp;
try{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
}catch (e){
// Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
return xmlHttp;
}
</script>
<input type="button" name="添加帐号" value="添加帐号" onclick="addAccount();"/>
运行测试,成功后,会在页面弹出一已持久化的Json形式表示的数据。如:
{"id":"001","userName":"zhw","pwd":"123"}
分享到:
相关推荐
通过这个示例,开发者可以学习如何在Spring环境中集成Apache Camel和Restlet,构建可扩展的REST服务。这有助于理解服务之间的交互、HTTP请求的处理以及如何利用Camel的路由能力来构建复杂的企业级应用。对于想要学习...
在本文中,我们将深入探讨如何在Spring 3框架中集成Restlet 2,利用注解方式进行配置。Restlet是一个轻量级的Java RESTful Web服务开发库,而Spring则是一个广泛使用的全面的企业级应用框架。结合两者,我们可以创建...
- **集成Spring**:Spring可以作为Restlet应用的容器,管理Restlet组件的生命周期。同时,Spring的AOP功能可以用于事务管理和安全控制。Spring MVC可以处理HTTP请求,与Restlet协同工作,提供更丰富的Web服务。 - *...
4. **Spring与Restlet集成**:将Restlet集成到Spring应用中,我们通常需要配置Restlet的Servlet或Filter,以便处理HTTP请求。这涉及到Spring的上下文配置和Restlet的组件注册。 5. **创建REST资源**:使用Restlet,...
最后,"RESTLET开发实例(三)基于spring的REST服务.doc"会介绍如何将Restlet与Spring框架集成。Spring是Java企业级应用开发的主流框架,提供了丰富的功能和优秀的依赖注入机制。结合Spring,Restlet服务可以利用...
在REST服务中,Spring可以帮助管理bean的生命周期,提供事务控制,以及与其他Spring组件(如数据库访问、安全等)集成。整合Restlet和Spring,开发者可以利用Spring的优势来增强Restlet服务的复杂性和可维护性。这...
8. **与其他技术的集成**:Restlet可以轻松集成到Spring、Guice等其他Java框架中,也支持JAXB和JSON等多种数据格式的序列化和反序列化。 9. **测试工具**:Restlet提供了一套测试工具,帮助开发者对REST服务进行...
8. **扩展与集成**:可能包含如何将Restlet与其他技术(如Spring框架、JAX-RS规范、Servlet容器等)集成,以实现更复杂的Web服务。 9. **实战示例**:提供具体的代码示例,演示如何创建一个完整的REST服务,包括...
cas-server-integration-restlet-3.5.2.jar cglib-nodep-2.1_3.jar ...restlet.ext.spring-1.1.1.jar
这使得与Java EE容器的集成更加顺畅。 五、国际化支持(Internationalization, i18n) Spring 2.5 增强了对多语言环境的支持,可以通过 @MessageSource 注解和 MessageSource 接口来处理不同语言的文本资源。 六、...
通过集成Spring框架,RESTlet 2_0允许开发者利用Spring的强大功能,如依赖注入、AOP(面向切面编程)以及丰富的社区支持,来增强REST服务的实现和管理。 "Rest框架及实践.ppt"可能是一个关于RESTful服务开发的演示...
3. 可以集成到其他框架中:Restlet 框架可以与其他框架集成,例如 Spring、Struts 等,提供了一个更加灵活和可扩展的解决方案。 具体实现 1. 采用 Restlet 框架来支持 REST,封装 DBCP 数据库连接池来提供数据库...
"reslet2.0+spring3.0+hibernate3.3框架集成" 这个标题表明这是一个关于Java开发中的技术整合项目。Reslet 2.0是一个轻量级的REST(Representational State Transfer)应用框架,用于构建Web服务和应用程序。Spring ...
4. **高级主题**:涵盖如安全、性能优化、与其他技术(如JPA、Spring)集成等高级话题,有助于开发者解决实际问题。 5. **案例研究**:文档可能包含了一些示例应用,展示如何在不同场景下使用Restlet,包括创建复杂...
3. 与Spring等框架的完美集成:Restlet可以与其他框架,如Struts2、Spring等无缝配合,方便开发者使用。 构建过程包括以下几个步骤: 1. 创建Web工程:首先建立一个基于Tomcat的Web项目,用于调试和部署RESTful...
《Reslet1:Reslet+Spring,构建简易Web...但只要掌握了基本的Reslet+Spring集成方式,就可以在此基础上进行扩展和优化。希望这篇文章能帮助你理解和实践Reslet与Spring的结合,为你的Web开发之旅增添新的工具和技能。
这个花了一点时时间做出来的简单的集成RSH框架,喜欢restlet的朋友可以研究研究,大家一起讨论一下,最简单的一个流程,已经完成了,个人感觉比ssh框架开发简单,中间都没有对象new,都通过spring注入方式获取对象,...
Restlet是一个轻量级的Java RESTful Web服务库,可以与Spring集成。在处理HTTP请求时,根据请求参数或业务逻辑,选择合适的数据源进行操作。MySQL是常用的开源关系型数据库,与Spring的JdbcTemplate或MyBatis等ORM...