`

基于Jersey的RESTful学习

 
阅读更多
  1. Jersey与Spring整合依赖的jar
        <dependency>
    			  <groupId>org.glassfish.jersey.ext</groupId>
    			  <artifactId>jersey-spring3</artifactId>
    			  <version>${jersey.version}</version>
    			  <exclusions> <!-- 移除jersey自己的spring库 -->
    			    <exclusion>
    			      <groupId>org.springframework</groupId>
    			      <artifactId>spring-core</artifactId>
    			    </exclusion>			
    			    <exclusion>
    			      <groupId>org.springframework</groupId>
    			      <artifactId>spring-web</artifactId>
    			    </exclusion>
    			    <exclusion>
    			      <groupId>org.springframework</groupId>
    			      <artifactId>spring-beans</artifactId>
    			    </exclusion>
    			  </exclusions>			
    			</dependency>
    			
    			<dependency>
    			  <groupId>org.glassfish.jersey.media</groupId>
    			  <artifactId>jersey-media-json-jackson</artifactId>
    			  <version>${jersey.version}</version>
    			</dependency>
     
  2.  web.xml配置
    <servlet>
    	  <servlet-name>jersey-serlvet</servlet-name>
    	  <servlet-class>
    	    org.glassfish.jersey.servlet.ServletContainer
    	  </servlet-class>
    	  <!-- 配置自己的资源加载类去加载资源,在类中设置 -->
    		<init-param>
    		<param-name>javax.ws.rs.Application</param-name>
    		<param-value>com.sj.webservice.RestServiceApplication</param-value>
    		</init-param>
    	<!-- 配置默认的资源包路径,使用默认的配置类去加载资源,包下面所有的类将查找服务 -->
    	  <!-- <init-param>
    	   <param-name>jersey.config.server.provider.packages</param-name> 
    	   <param-value>com.sj.webservice.service</param-value>   
    	  </init-param>  -->
    	  <load-on-startup>1</load-on-startup>
    	 </servlet>
    	
    	 <servlet-mapping>
    	  <servlet-name>jersey-serlvet</servlet-name>
    	  <url-pattern>/services/*</url-pattern>
    	 </servlet-mapping>
    
     上面有两种加载资源的方式,一种是使用自己的资源加载器去加载资源,需要给出自己资源加载器的位置。另一种是使用默认的资源加载器加载,需要给出资源所在的package。个人偏好第一种,写一个自己的资源加载器去加载想要加载的资源,这样感觉可控性强一点,自己写的时候也可以指定包路径。
  3.  RestServiceApplication代码
    package com.sj.webservice;
    
    import org.glassfish.jersey.server.ResourceConfig;
    
    import com.sj.webservice.service.TestRestService;
    
    public class RestServiceApplication  extends ResourceConfig{
    	public RestServiceApplication() {
    		// 加载resources单个服务
    		register(TestRestService.class);
    		
    		//packages("cn.com.vs.service");//服务类所在的包路径(以包的方式)
    		// 注册数据转换器
    		//register(JacksonJsonProvider.class);
    		// 注册日志
    		//register(LoggingFilter.class);
    		 
    		}
    }
    
     
  4. 测试类代码
    package com.sj.webservice.service;
    
    
    import javax.ws.rs.GET;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    
    import org.springframework.context.annotation.Scope;
    import org.springframework.stereotype.Component;
    
    import com.sj.webservice.service.modal.Test;
    
    @Component
    @Scope("prototype")
    @Path(value = "/processes")
    @Produces(MediaType.APPLICATION_JSON)
    public class TestRestService {
    
    
    	@GET
    	@Path("/create")
    	public Test createProcess() {
    		Test t=	new Test();
    		t.setName("哈哈哈");
    		return t;
    	}
    }
    
     
  5. 输入路径测试 http://127.0.0.1:8080/xxx/services/processes/create
  6. webservice和jersey的关系

     jersey1.X的版本是sun公司提供的独立的jar包,在2.X版本中,已经将jersey放在glassfish下。同时Java也支持jersey的webservice,支持webservice的注解的包都在javax.ws.rs.*包中。
  7. jersey常用注解解释:                                                                             

     

    Annotation 作用 说明
    @GET 查询请求 相当于数据库的查询数据操作
    @POST 插入请求 相当于数据库的插入数据操作
    @PUT 更新请求 相当于数据库的更新数据操作
    @DELETE 删除请求 相当于数据的删除数据操作
    @Path uri路径 定义资源的访问路径,client通过这个路径访问资源。比如:@Path("user")
    @Produces 指定返回MIME格式 资源按照那种数据格式返回,可取的值有:MediaType.APPLICATION_XXX。比如:@Produces(MediaType.APPLICATION_XML)
    @Consumes 接受指定的MIME格式 只有符合这个参数设置的请求再能访问到这个资源。比如@Consumes("application/x-www-form-urlencoded")
    @PathParam uri路径参数 写在方法的参数中,获得请求路径参数。比如:@PathParam("username")  String userName
    @QueryParam uri路径请求参数 写在方法的参数中,获得请求路径附带的参数。比如:@QueryParam("desc")  String desc
    @DefaultValue 设置@QueryParam参数的默认值 如果@QueryParam没有接收到值,就使用默认值。比如:@DefaultValue("description") @QueryParam("desc") String desc
    @FormParam form传递的参数 接受form传递过来的参数。比如:@FormParam("name")  String userName
    @BeanParam 通过Bena的形式传递参数 接受client传递的bean类型的参数,同时这个bean可以在属性上配置@FormParam用以解决client的属性名称和bean的属性名称不一致的问题。比如:@BeanParam  User user
    @Context 获得一些系统环境信息 通过@Context可以获得以下信息:UriInfo、ServletConfig、ServletContext、HttpServletRequest、HttpServletResponse和HttpHeaders等
    @XmlRootElement 将bean转换为xml 如果要讲bean以xml或json的格式返回,必须要这个注解。比如:

    @XmlRootElement

    public class User{...}

    @XmlElements    
    @XmlElement
  • 大小: 76.3 KB
分享到:
评论

相关推荐

    jersey restful webservice集成以及使用

    Jersey是Java平台上实现RESTful API的主要框架之一,它基于JAX-RS(Java API for RESTful Web Services)标准,提供了创建、部署和消费RESTful服务的工具和库。 **描述:** 在Java世界中,Jersey允许开发者轻松地...

    jersey 实现restful服务

    在IT行业中,RESTful服务是一种广泛采用的Web服务设计风格,它基于 Representational State Transfer(表述性状态转移)原则,使得API设计更加清晰、简洁且高效。本教程将重点讲解如何使用Jersey框架来实现RESTful...

    Jersey RESTful WebService框架学习(八)maven搭建

    在本篇中,我们将深入探讨如何使用Maven搭建一个基于Jersey实现的RESTful Web服务。Jersey是Java EE平台下的一个开源项目,它提供了对JAX-RS(Java API for RESTful Web Services)规范的全面支持,让我们能够轻松...

    Jersey Restful Webservice

    ** Jersey RESTful Web服务...通过学习这个项目,开发者可以深入理解RESTful服务的原理,以及如何在Java环境中使用Jersey进行快速开发。通过实践,可以掌握包括资源类定义、注解使用、数据交换和部署等方面的关键技能。

    RESTful最佳实践之基于 jersey 的增删改查

    本实践指南将聚焦于如何基于Java的Jersey框架实现RESTful服务,探讨相关的技术和最佳实践。 首先,让我们理解REST的基本概念。REST定义了一组约束条件,这些约束使得系统更加简单、可伸缩,并且符合Web的工作方式。...

    jersey实现restful简单实例

    【jersey实现RESTful简单实例】 ...通过学习和实践,你可以利用Jersey构建高效、可维护的Web服务,满足各种业务需求。在实际项目中,根据具体场景灵活运用上述知识点,可以大大提高开发效率和应用质量。

    构建Restful Web服务-jersey

    Jersey是Java语言中实现RESTful架构风格接口的一个开源框架,它基于JAX-RS(Java API for RESTful Web Services)规范。本篇文章将深入探讨如何使用Jersey构建RESTful Web服务。 首先,了解RESTful的基本概念至关...

    jersey-1.1.2 restful webservice

    Jersey 是一个开源的、基于Java的RESTful Web服务实现框架,它允许开发者轻松地创建和部署RESTful服务。REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,强调通过HTTP协议来操作...

    jersey 一起学习 1讲

    在Java世界中,Jersey是一个非常流行的RESTful服务框架,它是基于JAX-RS(Java API for RESTful Web Services)规范实现的。本讲将深入探讨Jersey的核心概念和使用方法,帮助你理解如何利用它构建高效、灵活的Web...

    使用jersey构建RESTful Web服务

    这些文件可以作为学习和实践Jersey的起点,通过阅读和运行代码,你可以更深入地了解RESTful服务的构建过程。 总之,使用Jersey构建RESTful Web服务,可以遵循JAX-RS标准,利用其强大的注解和API,快速开发出高效且...

    基于jersey v2.10的webservice核心框架

    总之,基于Jersey v2.10的Web服务框架提供了一套强大的工具来开发RESTful服务,但同时也需要注意配置的细节,以确保所有组件能够正常协同工作。对于JPA的使用,理解其基本原理和配置要求是解决问题的关键。通过不断...

    java jersey spring 集成 开发restful API 服务

    Jersey是Java官方的JAX-RS(Java API for RESTful Web Services)实现,它提供了一套全面的工具和API,用于轻松地构建和部署RESTful服务。通过使用Jersey,开发者可以利用注解(annotations)来定义资源、HTTP方法和...

    使用Jersey和Tomcat搭建的RESTful WebService

    本项目是使用Jersey框架和Tomcat服务器来构建RESTful WebService的一个实例,它提供了完整的配置和实现,对于学习和理解RESTful服务的开发具有很高的实用价值。 **Jersey框架**:Jersey是Java平台上的一个开源框架...

    java+restful+Jersey+webservice 远程调用

    在本项目中,你将学习如何使用Java和Jersey构建RESTful Web服务,并进行远程调用。以下是一些关键知识点: 1. **JAX-RS注解**: - `@Path`:用于定义资源的URI路径。 - `@GET`, `@POST`, `@PUT`, `@DELETE`:分别...

    使用Jersey框架搭建Rest服务

    通过本文档的学习,我们可以了解到搭建基于Spring与Jersey框架的RESTful Web服务的全过程,包括环境配置、工具选择、项目创建、依赖管理、配置文件编写等多个方面。这些知识点为开发人员提供了从零开始搭建REST服务...

    基于jersey2.26_spring4+hibernate5+mysql的整合学习.zip

    【标题】"基于jersey2.26_spring4+hibernate5+mysql的整合学习.zip" 提供了一个综合性的学习资源,旨在教授如何将三个关键的技术框架——Jersey 2.26、Spring 4 和 Hibernate 5 整合在一起,并与 MySQL 数据库进行...

    Jersey注解学习笔记

    它基于 JAX-RS(Java API for RESTful Web Services)标准,提供了一种简单、高效的方式来创建和消费 RESTful API。本篇文章主要关注 Jersey 注解的使用,这对于开发 web 2.0 应用至关重要。 RESTful Web Service ...

    基于Jersey+MySQL实现留言板【100012329】

    标题中的“基于Jersey+MySQL实现留言板”表明这是一个使用Java的Jersey框架和MySQL数据库构建的Web应用程序,主要功能是提供一个在线留言板服务。在这个系统中,用户可以查看、发布和管理留言,而管理员则拥有更高...

    五六本关于restful开发的电子书

    Jersey是JAX-RS(Java API for RESTful Web Services)规范的开源实现,它提供了一套用于创建和消费RESTful服务的API和工具。使用Jersey,开发者可以轻松地在Java应用中实现RESTful服务,例如通过注解来定义资源类...

Global site tag (gtag.js) - Google Analytics