jersey 是基于Java的一个轻量级RESTful风格的Web Services框架。以下我基于IDEA实现Restful完整Demo。

1.创建maven-web工程,后面就是正常的maven工程创建流程。

2.添加Jersey框架的maven文件。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.restful</groupId><artifactId>jerseyDemo</artifactId><packaging>war</packaging><version>1.0-SNAPSHOT</version><name>jerseyDemo Maven Webapp</name><url>http://maven.apache.org</url><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>org.glassfish.jersey.containers</groupId><artifactId>jersey-container-servlet</artifactId><version>2.9</version></dependency><dependency><groupId>org.glassfish.jersey.core</groupId><artifactId>jersey-client</artifactId><version>2.9</version></dependency><dependency><groupId>org.glassfish.jersey.media</groupId><artifactId>jersey-media-json-jackson</artifactId><version>2.9</version></dependency><dependency><groupId>com.sun.jersey</groupId><artifactId>jersey-client</artifactId><version>1.19.3</version></dependency></dependencies><build><finalName>jerseyDemo</finalName></build>
</project>

3.Restful接口定义。

package com.restful.service;import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.restful.entity.PersonEntity;import javax.ws.rs.*;
import javax.ws.rs.core.MediaType;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** Created by XuHui on 2017/8/2.*/
@Path("/JerseyService")
public class JerseyService {private static Map<String, PersonEntity> map = new HashMap<String, PersonEntity>();@GET@Path("/getAllResource")@Produces(MediaType.APPLICATION_JSON)public String getAllResource() throws JsonProcessingException {List<PersonEntity> list = new ArrayList<PersonEntity>();for (PersonEntity entity : map.values()) {list.add(entity);}ObjectMapper mapper = new ObjectMapper();return mapper.writeValueAsString(list);}@GET@Path("/getResourceById/{id}")@Produces(MediaType.APPLICATION_JSON)public String getResource(@PathParam("id") String id) throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();return mapper.writeValueAsString(map.get(id));}@POST@Path("/addResource/{person}")@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})@Produces(MediaType.APPLICATION_JSON)public String addResource(String person) throws IOException {ObjectMapper mapper = new ObjectMapper();PersonEntity entity = mapper.readValue(person, PersonEntity.class);map.put(entity.getId(), entity);return mapper.writeValueAsString(entity);}@GET@Path("/getRandomResource")@Produces(MediaType.APPLICATION_JSON)public String getRandomResource() throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();PersonEntity entity = new PersonEntity("NO1", "Joker", "http:///");return mapper.writeValueAsString(entity);}
}

PersonEntity实体类实现。

package com.restful.entity;/*** Created by XuHui on 2017/8/2.*/
public class PersonEntity {private String id;private String name;private String addr;public PersonEntity() {}public PersonEntity(String id, String name, String addr) {this.id = id;this.name = name;this.addr = addr;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getAddr() {return addr;}public void setAddr(String addr) {this.addr = addr;}@Overridepublic String toString() {return "PersonEntity{" +"id='" + id + '\'' +", name='" + name + '\'' +", addr='" + addr + '\'' +'}';}
}

4.web.xml配置。

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><servlet><servlet-name>Jersey RESTful Application</servlet-name><servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class><init-param><param-name>jersey.config.server.provider.packages</param-name><param-value>com.restful</param-value></init-param></servlet><servlet-mapping><servlet-name>Jersey RESTful Application</servlet-name><url-pattern>/rest/*</url-pattern></servlet-mapping>
</web-app>

5.搭建本地tomcat

6.运行结果.http://localhost:8080/jerseyDemo/rest/application.wadl是所有对外接口的调用方法。使用postman来看看这个接口是怎么调用的吧。

POST请求

GET请求

转载于:https://www.cnblogs.com/jave1ove/p/7277861.html

Jersey实现Restful服务相关推荐

  1. maven jersey mysql_jersey+maven构建restful服务

    一.新建一个Maven Web项目 a) 新建一个简单的Maven项目 b) 将简单的Maven项目转成Web项目 (若没出现further configuration available--或里面的 ...

  2. tomcat 部署 RESTful 服务实例

    1.建立简单restfule服务 参考:java 利用JAX-RS快速开发RESTful 服务实例 简单代码: package com.example;import javax.ws.rs.GET; ...

  3. restful和rest_HATEOAS的RESTful服务:JVM上的REST API和超媒体

    restful和rest 1.简介 到目前为止,我们已经花了很多时间谈论了相当数量的关于角色的的超媒体和HATEOAS在REST风格的 Web服务和API,扫视不同规格和可用性方面. 听起来好像支持超 ...

  4. restful服务端客户端_测试RESTful服务的客户端

    restful服务端客户端 开发使用RESTful Web API的应用程序可能意味着开发服务器和客户端. 为服务器端编写集成测试可以像使用Arquillian启动服务器一样容易,并且可以通过REST ...

  5. 测试RESTful服务的客户端

    开发使用RESTful Web API的应用程序可能意味着开发服务器和客户端. 为服务器端编写集成测试可以像使用Arquillian来启动服务器一样容易,并且可以通过REST确保测试服务是否按预期工作 ...

  6. 使用Mule ESB与Groovy编排RESTful服务【转】很适合我们当前的架构

    http://www.infoq.com/cn/articles/restful-services-mule 在过去几年中,REST风格的软件架构获得了越来越多的认可,这主要是因为它减少了系统对动件的 ...

  7. RESTful服务 安全

    今天项目中要设计一套RESTful服务,在网上看了几篇博客,发现下面这篇博客总结的很到位,害怕帖子主银一不开心把帖子删了,我就搬过来了, 如果主银你不想让我搬,告诉我,尊重您的劳动成果. 链接地址: ...

  8. jetty服务器使用jersey作为Restful框架

    使用 Maven 的简单 Java SE 应用程序,从一个现有项目学习尝试搭建一个新的项目. 首先完成最基础的GET POST请求的功能. 1.新建项目 Maven-Java应用程序 2.打开POM, ...

  9. 基于SpringBoot开发一个Restful服务,实现增删改查功能

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:虚无境 cnblogs.com/xuwujing/p/8260935.html 前言 在去 ...

  10. RESTful服务最佳实践

    本文主要读者 引言 REST是什么 统一接口 基于资源 通过表征来操作资源 自描述的信息 超媒体即应用状态引擎(HATEOAS) 无状态 可缓存 C-S架构 分层系统 按需编码(可选) REST快速提 ...

最新文章

  1. 《评人工智能如何走向新阶段》后记(再续26)
  2. 搞了半天,终于弄懂了TCP Socket数据的接收和发送,太难~
  3. alert 返回页面 刷新_详解 HTML 页面原生的生命周期事件
  4. python人工智能——机器学习——转换器与估计器
  5. bash shell 中时间操作常用方法总结
  6. [leetcode]143. Reorder List
  7. 【训练计划】ACM题集以及各种总结大全
  8. 思想篇(1)--企业需要什么样的人才?
  9. phpstorm 10 注册码
  10. linux学习(3)——vim文本编辑工具
  11. 【深度学习】之Caffe的solver文件配置(转载自csdn)
  12. 二维码的实现原理和实现过程[纠错码编码]
  13. CAXA2007、2011,2013二次开发
  14. Eclipse搭建springBoot进阶篇-SpringBoot+Mybatis
  15. 独家下载!《Java工程师成神之路(基础篇)》
  16. 可缩放矢量图形svg
  17. tweenMax代码未定义问题
  18. 一个新的起点,也是转折点
  19. 如何在本地搭建FTP服务器以及搭建后的用途
  20. 怎样发量暴增_发量少怎么办如何增加发量?看完你就明白了

热门文章

  1. Mysql之统计数据
  2. 飞翔 nyoj195(贪心or 动态)
  3. 【POJ2796】Feel Good (简单单调栈)
  4. C语言判断一个数是不是质数(C笔记)
  5. oracle tsm rman,TSM下oracle备份
  6. websocket 连接本地端口_Spring Boot 结合 WebSocket 实现在线聊天
  7. 手写数字识别Caffe实现
  8. 翻译:iOS Swift单元测试 从入门到精通 Unit Test和UI测试 UITest
  9. linux访问vdma的数据,Xilinx VDMA 24位流输出与32位AXI总线的内存流数据关系
  10. DeepLab图像分割