Jersey实现Restful服务(实例讲解)

网友投稿 267 2023-04-22


Jersey实现Restful服务(实例讲解)

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

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

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

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

http://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

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">

http://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实体类实现。

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配置。

"-//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.运行结果、http://localhost:8080/jerseyDemo/rest/application.wadl是所有对外接口的调用方法。使用postman来看看这个接口是怎么调用的吧。

POST请求

GET请求


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:如何开发自己的api网关(如何开发自己的api网关系统)
下一篇:mock工具搭建(mock组件)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~