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

【原创】使用Jersey体验REST

阅读更多

一直想体验一下REST风格的Web服务,最近关注了一下Jersey这个Java的REST实现,记录一下备忘。

 

这里有一篇不错的文章:http://www.vogella.com/articles/REST/article.html

 

REST的Resource类实现:

 

package wh.rest.jersey.first;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

/**
 * @Author:WangHuan
 * 
 * @Date:2012-5-29
 *
 * @TODO:
 */
@Path("/hello")
public class HelloResource {
	// This method is called if TEXT_PLAIN is request
	@GET
	@Produces(MediaType.TEXT_PLAIN)
	public String sayPlainTextHello() {
		return "Hello Jersey";
	}

	// This method is called if XML is request
	@GET
	@Produces(MediaType.TEXT_XML)
	public String sayXMLHello() {
		return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
	}

	// This method is called if HTML is request
	@GET
	@Produces(MediaType.TEXT_HTML)
	public String sayHtmlHello() {
		return "<html> " + "<title>" + "Hello Jersey" + "</title>"
				+ "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> ";
	}
}

 

web.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>wh.rest.jersey.first</display-name>
	<servlet>
		<servlet-name>Jersey REST Service</servlet-name>
		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
		<init-param>
			<param-name>com.sun.jersey.config.property.packages</param-name>
			<param-value>wh.rest.jersey.first</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Jersey REST Service</servlet-name>
		<url-pattern>/rest/*</url-pattern>
	</servlet-mapping>
</web-app>

 

客户端调用:

 

package wh.rest.jersey.first;

import java.net.URI;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;


/**
 * @Author:WangHuan
 * 
 * @Date:2012-5-29
 *
 * @TODO:
 */

public class HelloClient {
	public static void main(String[] args) {
		ClientConfig config = new DefaultClientConfig();
		Client client = Client.create(config);
		WebResource service = client.resource(getBaseURI());
		// Fluent interfaces
		System.out.println(service.path("rest").path("hello").accept(
				MediaType.TEXT_PLAIN).get(ClientResponse.class).toString());
		// Get plain text
		System.out.println(service.path("rest").path("hello").accept(
				MediaType.TEXT_PLAIN).get(String.class));
		// Get XML
		System.out.println(service.path("rest").path("hello").accept(
				MediaType.TEXT_XML).get(String.class));
		// The HTML
		System.out.println(service.path("rest").path("hello").accept(
				MediaType.TEXT_HTML).get(String.class));

	}

	private static URI getBaseURI() {
		return UriBuilder.fromUri(
				"http://localhost:8080/jersey").build();
	}
}

 

最终的访问URL是:http://localhost:8080/jersey/rest/hello

其中hello对应的实现类中的

@Path("/hello")
分享到:
评论

相关推荐

    使用Jersey框架搭建Rest服务

    本教程将详细介绍如何使用Jersey来搭建REST服务。 首先,了解REST的基本概念至关重要。REST是一种架构风格,它强调通过URI(统一资源标识符)来定位资源,并通过HTTP方法(如GET、POST、PUT、DELETE)进行操作。...

    jersey实现简单的rest接口

    本教程将深入探讨如何使用Jersey来创建一个简单的REST接口,并返回JSON数据。 首先,让我们理解REST(Representational State Transfer)的核心概念。REST是一种软件架构风格,用于设计网络应用程序,它强调资源的...

    Jersey关于搭建Rest服务的案例

    【标题】:Jersey关于搭建REST服务的案例 在当今的Web开发中,RESTful API已经成为构建可伸缩、高效且易于使用的Web服务的标准。Jersey是Java平台上的一个开源库,专门用于实现 Representational State Transfer ...

    JAVA+Spring+Hibernate使用Jersey开发Rest_WEB_SERVICE

    5. 使用Jersey开发REST服务: - `@Path`:定义服务的访问路径,如`@Path("/HelloWorldRS")`。 - `@GET`:标记方法为HTTP GET请求,例如`@GET @Path("/sayHelloByGET")`表示GET请求的sayHelloByGET方法。 - `@...

    Jersey Java规范下REST风格Web Service开发框架

    下面是一个简单的示例,演示了如何使用 Jersey 构建一个 REST 风格 Web 服务: 首先,我们定义了一个 Student 资源,包含学生的姓名和年龄信息,使用学生名作为定位资源的 URI,返回学生的详细信息(姓名、年龄)。...

    jersey构建rest服务,通过mybatis访问数据库

    本篇文章将深入探讨如何使用Jersey构建REST服务,并结合MyBatis实现数据库访问。 首先,我们需要理解REST(Representational State Transfer)的核心概念,它是基于资源的架构风格,使用HTTP方法如GET、POST、PUT、...

    使用Maven和Jersey Framework开发REST风格Web Service

    使用Jersey,我们可以创建一个简单的Java类来表示REST资源。这个类通常会继承自`javax.ws.rs.core.Application`,并使用注解来定义资源路径和HTTP方法。例如: ```java @Path("/hello") public class ...

    Jersey-rest服务的Jar包1.8.2版本,含源代码

    标题中的 "Jersey REST服务的Jar包1.8.2版本,含源代码" 提示我们,这是一个包含 Jersey 框架1.8.2版本的软件包,并且提供了源代码。这对于开发者来说非常有价值,因为源代码能够帮助理解框架的工作原理,进行自定义...

    Jersey Rest Web Service 例子源码

    本示例源码旨在帮助开发者了解如何使用 Jersey 创建和实现 RESTful 服务。REST(Representational State Transfer)是一种轻量级的 Web 服务设计模式,它强调通过HTTP协议来传输数据,简化了客户端和服务器之间的...

    jersey+spring rest webservice web maven

    综合以上,这个项目可能包含了一个使用Jersey作为REST服务提供者,Spring MVC作为服务的控制器,以及Maven作为构建工具的架构。开发者可能已经配置好了一套基本的模板,方便其他开发者快速搭建自己的RESTful Web服务...

    rest jersey 所必须的jar包

    本篇文章将详细介绍在开发REST服务时,使用Jersey所需的核心jar包以及它们在构建RESTful应用中的作用。 1. **jersey-server.jar**:这是Jersey的核心组件,提供了REST服务的服务器端实现。它包含了处理HTTP请求、...

    jersey rest web services整理

    这篇博文主要涵盖了使用Jersey构建REST服务的关键知识点。 首先,理解REST(Representational State Transfer)的核心原则至关重要。REST强调资源的概念,通过HTTP方法(GET、POST、PUT、DELETE等)来操作这些资源...

    rest包jersey-1.19.1

    rest包jersey-1.19.1,包含全部的jar包,下载留评论。开发jersey api接口用到的jar包。是一个软件开发框架,Jersey不仅仅是一个JAX-RS的参考实现,Jersey提供自己的API,其API继承自JAX-RS,提供更多的特性和功能以...

    基于rest的jersey实现webservice

    **基于REST的Jersey实现Web服务** REST(Representational State Transfer)是一种软件架构风格,用于构建Web服务。它强调简洁、可伸缩性和基于HTTP协议的设计。RESTful Web服务使用HTTP方法(如GET、POST、PUT、...

    REST的开源框架jersey

    **REST的开源框架Jersey详解** REST(Representational State Transfer)是一种软件架构风格,用于构建分布式系统,尤其是Web服务。其核心原则是通过HTTP协议来操作资源,通过URI(Uniform Resource Identifier)...

Global site tag (gtag.js) - Google Analytics