`
sb33060418
  • 浏览: 151586 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Restlet 2.0 边学边写(二)发布多个Resource

    博客分类:
  • REST
阅读更多
上一次实践是一个Application绑定一个Resource,很简单就通过了。但是如果想要发布多个Resource怎么办呢?


参考:http://ajaxcn.iteye.com/blog/415093

本次实践将发布两个Resource,CustomerResource和OrderResource。

1.包
创建包com.sunny.restlet.order。

2.Resource
在com.sunny.restlet.order包中创建CustomerResource类,代码如下:
package com.sunny.restlet.order;

import org.restlet.resource.Get;
import org.restlet.resource.ResourceException;
import org.restlet.resource.ServerResource;

public class CustomerResource extends ServerResource {
	String customerId = "";

	@Override
	protected void doInit() throws ResourceException {
		this.customerId = (String) getRequest().getAttributes().get("custId");
	}

	@Get
	public String represent() {
		return "get customer id :" + customerId;
	}

}

代码中定义了CustomerResource类资源初始化的动作:从request中读取custId属性,和Get方法。

创建OrderResource类,代码如下:
package com.sunny.restlet.order;

import org.restlet.resource.Get;
import org.restlet.resource.ResourceException;
import org.restlet.resource.ServerResource;

public class OrderResource extends ServerResource {
	String orderId = "";
	String subOrderId = "";

	@Override
	protected void doInit() throws ResourceException {
		this.orderId = (String) getRequest().getAttributes().get("orderId");
		this.subOrderId = (String) getRequest().getAttributes().get(
				"subOrderId");
	}

	@Get
	public String represent() {
		return "the order id is : " + orderId + " and the sub order id is : "
				+ subOrderId;
	}
}
代码中定义了OrderResource 类资源初始化的动作:从request中读取orderId、subOrderId属性,和Get方法。

3.Application
创建OrderApplication类,代码如下:
package com.sunny.restlet.order;

import org.restlet.Application;
import org.restlet.Restlet;
import org.restlet.routing.Router;


public class OrderApplication extends Application {
	
	@Override
	public synchronized Restlet createRoot() {
		Router router = new Router(getContext());
		router.attach("/orders/{orderId}/{subOrderId}", OrderResource.class);
		router.attach("/customers/{custId}", CustomerResource.class);
		return router;

	}
}

类中将OrderResource和CustomerResource分别发布到两个路径上。

4.Main
创建OrderMain类,代码如下:
package com.sunny.restlet.order;

import org.restlet.Component;
import org.restlet.data.Protocol;

public class OrderMain {
	public static void main(String[] args) throws Exception {
		Component component = new Component();
		component.getServers().add(Protocol.HTTP, 8182);
		component.getDefaultHost()
				.attach("/firstSteps", new OrderApplication());
		component.start();
	}
}

类中将Application分别发布到localhost:8182/firstSteps上。

5.运行
运行OrderMain类。
通过浏览器访问http://localhost:8182/firstSteps/customers/1可以看到提示信息
  • get customer id :1

访问http://localhost:8182/firstSteps/orders/1/2可以看到提示信息
  • the order id is : 1 and the sub order id is : 2,

两个Resource发布成功。

6.servlet
将web.xml中的
<!-- FirstStepsApplication -->
<init-param>
	<param-name>org.restlet.application</param-name>
	<param-value>com.sunny.restlet.firstSteps.FirstStepsApplication</param-value>
</init-param>

替换为
<!-- OrderApplication -->
<init-param>
	<param-name>org.restlet.application</param-name>
	<param-value>com.sunny.restlet.order.OrderApplication</param-value>
</init-param>

重新部署后(Eclipse中修改web.xml会自动重新部署,稍后即可),通过浏览器访问http://localhost:8080/firstSteps/customers/1可以看到提示信息
  • get customer id :1

访问http://localhost:8080/firstSteps/orders/1/2可以看到提示信息
  • the order id is : 1 and the sub order id is : 2,

说明两个Resource在Servlet容器中发布成功。
分享到:
评论
2 楼 洋葱的逆袭与奋斗 2014-04-21  
太感谢博主了。很详细,对初学者很大的帮助,最近公司要我用restlet封装一个服务,头疼中。。。
1 楼 gaofeng_867 2013-02-18  
顶!学习学习

相关推荐

    Restlet 2.0 边学边写(八)使用jQuery和ajax实现对Restlet资源的CRUD操作

    在本篇博文中,我们将深入探讨如何利用jQuery和Ajax技术与Restlet 2.0框架进行交互,实现对Restful资源的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,即CRUD操作。Restlet是一个开源的Java ...

    restlet2.0版本jee源代码

    Restlet 2.0版的核心概念包括以下几个方面: 1. **组件(Component)**: 在Restlet框架中,组件是基本的执行单元,它们负责处理HTTP请求并生成响应。每个组件都有自己的生命周期和上下文,可以独立运行或与其他...

    restlet2.0+spring3.0+hibernate3.3.框架集成

    在这个场景中,我们关注的是"restlet2.0+spring3.0+hibernate3.3"的整合,这是一个经典的Java Web开发组合,分别代表了RESTful API、服务层管理和持久化层的优秀实践。 首先,让我们深入了解每个框架的核心特性: ...

    restlet-jee-2.0.6.zip_Restlet 2..0_Restlet framework2.0_org.rest

    标题"restlet-jee-2.0.6.zip_Restlet 2..0_Restlet framework2.0_org.rest"表明这是一个针对Java企业版(Java EE)的Restlet框架2.0.6版本的压缩包,其中包含了与org.restlet相关的组件。 描述中的"restlet框架所需...

    RESTLET开发

    RESTLET提供了多个版本以适应不同平台的需求,例如Java SE、Java EE、Android等。本节将介绍如何使用JEE(Java Enterprise Edition)版本的RESTLET进行开发。 1. **下载RESTLET JEE版本** 首先,需要从官方网站...

    restlet2.1学习笔记项目代码

    Restlet是一个开源框架,专为构建RESTful(Representational State Transfer)Web服务而设计。REST是一种轻量级的架构风格,常用于构建可扩展、高性能的互联网应用程序。本项目是针对Restlet 2.1版本的学习笔记,...

    restlet

    在服务器端,RESTlet充当了一个应用服务器,支持多种Java应用服务器,如Jetty、Tomcat等。它提供了一种模块化的方式来组织和处理HTTP请求,允许开发者定义自定义的资源类来响应特定的URI路径。 客户端部分,RESTlet...

    Restlet开发实例

    在Restlet框架中,Component是整个应用的基础,它负责管理和协调多个Application。Application则是实际处理HTTP请求的实体,它可以包含多个不同的资源。通过Component和Application,你可以更好地组织和管理REST服务...

    restlet项目

    Restlet项目是一个开源框架,专门用于构建RESTful(Representational State Transfer)Web服务。REST是一种软件架构风格,它强调简洁、可扩展性和无状态性,是Web服务设计的主流方式。Restlet框架提供了全面的工具集...

    restlet实现最简单的restful webservice

    2. **创建资源类**:在Java中创建一个新的类,该类继承自Restlet或更具体的子类,如ServerResource。在这个类中,你可以覆盖handle方法或者重写onGet、onPost等HTTP方法来处理不同的HTTP请求。 ```java import ...

    Restlet开发的Basic认证

    Restlet是一个轻量级的Java Web服务开发框架,它提供了构建RESTful(Representational State Transfer)应用程序的工具和API。REST是一种架构风格,强调简洁、无状态和可缓存的网络交互,常用于构建高性能、高可用性...

    Restlet所需要的所有jar包

    这个API包含了客户端连接器、代表资源的`ClientResource`类以及用于处理请求和响应的各种辅助类。 2. **服务器端API**:用于创建REST服务端点,包括`Application`、`Component`、`Host`和`Router`等核心类。开发者...

    RESTLET框架学习书籍

    - **RESTLET框架简介**:RESTLET是一个面向对象的Java开源框架,用于构建RESTful应用和服务。它旨在简化Web应用开发,允许开发者充分利用REST架构的优势。RESTLET提供了一系列丰富的类库和支持,帮助开发者更容易地...

    org.restlet-2.3.0.jar 最新版本

    1. **模块化设计**:库被分解为多个模块,如服务器、客户端、扩展和工具,开发者可以根据需要仅引入必要的部分,减少应用的体积和启动时间。 2. **更好的HTTP支持**:全面支持HTTP/1.1,包括连接管理、缓存策略和...

    Restlet Client-2.13.2

    用户在安装了Restlet Client之后,直接点击插件图标即可开始使用,只需输入自己的网站并选择好对应的请求模式就能对网站发送Web请求并检查响应,同时使用者可以先将多个API请求组合成一个方案来创建一个针对网站的...

    RESTLET开发(三)

    ### RESTLET开发(三):基于Spring的REST服务 #### 一、基于Spring配置的Rest简单服务 在本文档中,我们将深入探讨如何利用RESTlet框架与Spring框架结合,构建高效的RESTful服务。Spring框架因其强大的功能和灵活...

Global site tag (gtag.js) - Google Analytics