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; } @Override public 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请求
以上这篇Jersey实现Restful服务(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
如何开始使用 Jersey 构建 RESTful 服务的快速介绍。这里描述的示例使用轻量级的 Grizzly HTTP 服务器。
本文向大家介绍Spring Boot 实现Restful webservice服务端示例代码,包括了Spring Boot 实现Restful webservice服务端示例代码的使用技巧和注意事项,需要的朋友参考一下 1.Spring Boot configurations 2.Spring Boot Application 3.Rest Controller 4.Aspect 5.Contro
在Eclipse中运行RESTful客户端时,出现以下错误: 在浏览器中调用时,URL不会被阻止。如何通过客户端使用它? TIA! 编辑:(客户端代码)
我有一组RESTful web服务,通常部署在Glassfish服务器中。问题是,我工作的地方只与Apache一起工作,所以我不得不切换,现在是问题出现的地方。我已经成功地部署了两个RESTful资源,它们工作得很好(它们所做的只是从数据库中检索信息,并在POJO的ArrayList中返回该信息)。 我手动设置了库,甚至下载了该死的JerseyClientBuilder,但这些都不管用。提前谢谢你
本文向大家介绍Java 实现FTP服务实例详解,包括了Java 实现FTP服务实例详解的使用技巧和注意事项,需要的朋友参考一下 Java 实现FTP服务实例详解 1、FTP简介 FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。基
问题内容: 从我在线上可以找到的信息来看,自2008年以来两队陷入僵局以来,Guice + Jersey整合的发展一直停滞不前。问题的症结在于,JAX- RS批注执行字段和方法注入,而这与Guice自己的依赖项注入不能很好地配合。 我发现的一些示例还不足以阐明: Iqbalyusuf 在Google App Engine Java上的Jersey + Guice上的帖子遭受了很多重复(手动获取并调