Jersey实现Restful服务
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服务相关推荐
- maven jersey mysql_jersey+maven构建restful服务
一.新建一个Maven Web项目 a) 新建一个简单的Maven项目 b) 将简单的Maven项目转成Web项目 (若没出现further configuration available--或里面的 ...
- tomcat 部署 RESTful 服务实例
1.建立简单restfule服务 参考:java 利用JAX-RS快速开发RESTful 服务实例 简单代码: package com.example;import javax.ws.rs.GET; ...
- restful和rest_HATEOAS的RESTful服务:JVM上的REST API和超媒体
restful和rest 1.简介 到目前为止,我们已经花了很多时间谈论了相当数量的关于角色的的超媒体和HATEOAS在REST风格的 Web服务和API,扫视不同规格和可用性方面. 听起来好像支持超 ...
- restful服务端客户端_测试RESTful服务的客户端
restful服务端客户端 开发使用RESTful Web API的应用程序可能意味着开发服务器和客户端. 为服务器端编写集成测试可以像使用Arquillian启动服务器一样容易,并且可以通过REST ...
- 测试RESTful服务的客户端
开发使用RESTful Web API的应用程序可能意味着开发服务器和客户端. 为服务器端编写集成测试可以像使用Arquillian来启动服务器一样容易,并且可以通过REST确保测试服务是否按预期工作 ...
- 使用Mule ESB与Groovy编排RESTful服务【转】很适合我们当前的架构
http://www.infoq.com/cn/articles/restful-services-mule 在过去几年中,REST风格的软件架构获得了越来越多的认可,这主要是因为它减少了系统对动件的 ...
- RESTful服务 安全
今天项目中要设计一套RESTful服务,在网上看了几篇博客,发现下面这篇博客总结的很到位,害怕帖子主银一不开心把帖子删了,我就搬过来了, 如果主银你不想让我搬,告诉我,尊重您的劳动成果. 链接地址: ...
- jetty服务器使用jersey作为Restful框架
使用 Maven 的简单 Java SE 应用程序,从一个现有项目学习尝试搭建一个新的项目. 首先完成最基础的GET POST请求的功能. 1.新建项目 Maven-Java应用程序 2.打开POM, ...
- 基于SpringBoot开发一个Restful服务,实现增删改查功能
点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 作者:虚无境 cnblogs.com/xuwujing/p/8260935.html 前言 在去 ...
- RESTful服务最佳实践
本文主要读者 引言 REST是什么 统一接口 基于资源 通过表征来操作资源 自描述的信息 超媒体即应用状态引擎(HATEOAS) 无状态 可缓存 C-S架构 分层系统 按需编码(可选) REST快速提 ...
最新文章
- 《评人工智能如何走向新阶段》后记(再续26)
- 搞了半天,终于弄懂了TCP Socket数据的接收和发送,太难~
- alert 返回页面 刷新_详解 HTML 页面原生的生命周期事件
- python人工智能——机器学习——转换器与估计器
- bash shell 中时间操作常用方法总结
- [leetcode]143. Reorder List
- 【训练计划】ACM题集以及各种总结大全
- 思想篇(1)--企业需要什么样的人才?
- phpstorm 10 注册码
- linux学习(3)——vim文本编辑工具
- 【深度学习】之Caffe的solver文件配置(转载自csdn)
- 二维码的实现原理和实现过程[纠错码编码]
- CAXA2007、2011,2013二次开发
- Eclipse搭建springBoot进阶篇-SpringBoot+Mybatis
- 独家下载!《Java工程师成神之路(基础篇)》
- 可缩放矢量图形svg
- tweenMax代码未定义问题
- 一个新的起点,也是转折点
- 如何在本地搭建FTP服务器以及搭建后的用途
- 怎样发量暴增_发量少怎么办如何增加发量?看完你就明白了
热门文章
- Mysql之统计数据
- 飞翔 nyoj195(贪心or 动态)
- 【POJ2796】Feel Good (简单单调栈)
- C语言判断一个数是不是质数(C笔记)
- oracle tsm rman,TSM下oracle备份
- websocket 连接本地端口_Spring Boot 结合 WebSocket 实现在线聊天
- 手写数字识别Caffe实现
- 翻译:iOS Swift单元测试 从入门到精通 Unit Test和UI测试 UITest
- linux访问vdma的数据,Xilinx VDMA 24位流输出与32位AXI总线的内存流数据关系
- DeepLab图像分割