文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Restful服务如何利用Jersey来实现

2023-05-31 07:58

关注

这篇文章将为大家详细讲解有关Restful服务如何利用Jersey来实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

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

Restful服务如何利用Jersey来实现

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;@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;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

Restful服务如何利用Jersey来实现

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

POST请求

Restful服务如何利用Jersey来实现

GET请求

Restful服务如何利用Jersey来实现

关于Restful服务如何利用Jersey来实现就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯