jersey创建restful服务及调用_Jersey实现Restful服务(实例讲解)
jersey 是基于Java的一個輕量級RESTful風(fēng)格的Web Services框架。以下我基于IDEA實(shí)現(xiàn)Restful完整Demo。
1.創(chuàng)建maven-web工程,后面就是正常的maven工程創(chuàng)建流程。
2.添加Jersey框架的maven文件。
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
4.0.0
com.restful
jerseyDemo
war
1.0-SNAPSHOT
jerseyDemo Maven Webapp
http://maven.apache.org
junit
junit
3.8.1
test
org.glassfish.jersey.containers
jersey-container-servlet
2.9
org.glassfish.jersey.core
jersey-client
2.9
org.glassfish.jersey.media
jersey-media-json-jackson
2.9
com.sun.jersey
jersey-client
1.19.3
jerseyDemo
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 map = new HashMap();
@GET
@Path("/getAllResource")
@Produces(MediaType.APPLICATION_JSON)
public String getAllResource() throws JsonProcessingException {
List list = new ArrayList();
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實(shí)體類實(shí)現(xiàn)。
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;
}
@Override
public String toString() {
return "PersonEntity{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", addr='" + addr + '\'' +
'}';
}
}
4.web.xml配置。
/p>
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
Archetype Created Web Application
Jersey RESTful Application
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.restful
Jersey RESTful Application
/rest/*
5.搭建本地tomcat
6.運(yùn)行結(jié)果、http://localhost:8080/jerseyDemo/rest/application.wadl是所有對外接口的調(diào)用方法。使用postman來看看這個接口是怎么調(diào)用的吧。
POST請求
GET請求
以上這篇Jersey實(shí)現(xiàn)Restful服務(wù)(實(shí)例講解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
總結(jié)
以上是生活随笔為你收集整理的jersey创建restful服务及调用_Jersey实现Restful服务(实例讲解)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [GAN学习系列] 初识GAN
- 下一篇: 数据迁移,不停机上线的正确姿势