Web编程学习四: 使用Jersey来创建RESTful WebService

Jersey Rest Web Service 例子源码 立即下载

RESTful Web Service是轻量级的service,可以通过HTTP的方式来实现对后台数据库的CRUD,

在Web开发和移动开发时使用的比较广泛,非常方便。

在Java世界里, JAX-RS规范定义了对RESTful Web Service的实现。

Oracle的Jersey框架则是对JAX-RS的一个实现。

下面我们学习如何使用Jersey来创建RESTful WebService。


我的开发环境:

Eclipse Juno, Java 1.6, Tomcat 7.0, Jersey 1.18


1. 创建第一个RESTful web service

1.1创建一个叫jersey1的Dynamic Web Project.

1.2在WEB-INF/lib文件夹中导入jersey的包。

1.3创建web.xml,定义Jersey的使用。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>sample</display-name>
  <servlet>
    <servlet-name>Jersey REST Service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>sample</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Jersey REST Service</servlet-name>
    <url-pattern>/rest/*</url-pattern>
  </servlet-mapping>
</web-app> 


1.4创建Java class


package sample;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

//Sets the path to base URL + /hello
@Path("/hello")
public class Hello {

	// This method is called if TEXT_PLAIN is request
	@GET
	@Produces(MediaType.TEXT_PLAIN)
	public String sayPlainTextHello() {
		return "Hello Jersey";
	}

	// This method is called if XML is request
	@GET
	@Produces(MediaType.TEXT_XML)
	public String sayXMLHello() {
		return "<?xml version=\"1.0\"?>" + "<hello> Hello Jersey" + "</hello>";
	}

	// This method is called if HTML is request
	@GET
	@Produces(MediaType.TEXT_HTML)
	public String sayHtmlHello() {
		return "<html> " + "<title>" + "Hello Jersey" + "</title>"
				+ "<body><h1>" + "Hello Jersey" + "</body></h1>" + "</html> ";
	}

}


1.5.创建测试应用

package sample;

import java.net.URI;

import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.UriBuilder;

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;
import com.sun.jersey.api.client.config.ClientConfig;
import com.sun.jersey.api.client.config.DefaultClientConfig;

public class Test {
	public static void main(String[] args) {
		ClientConfig config = new DefaultClientConfig();
		Client client = Client.create(config);
		WebResource service = client.resource(getBaseURI());
		// Fluent interfaces
		System.out.println(service.path("rest").path("hello")
				.accept(MediaType.TEXT_PLAIN).get(ClientResponse.class)
				.toString());
		// Get plain text
		System.out.println(service.path("rest").path("hello")
				.accept(MediaType.TEXT_PLAIN).get(String.class));
		// Get XML
		System.out.println(service.path("rest").path("hello")
				.accept(MediaType.TEXT_XML).get(String.class));
		// The HTML
		System.out.println(service.path("rest").path("hello")
				.accept(MediaType.TEXT_HTML).get(String.class));

	}

	private static URI getBaseURI() {
		return UriBuilder.fromUri(
				"http://localhost:8080/jersey1").build();
	}

}

1.6. 部署项目到tomcat后,运行Test程序:



2.然后来结合JAXB来创建RESTful web service.

JAX-RS可以直接通过JAXB来创建XML和JSON的输出。

JAXB是Java对xml的实现。

2.1 创建叫jersey2的Dynamic Web Project,导入jersey库。

2.2 创建一个对象,这里注意下,加上@XmlRootElement就可以了。

package sample;

import javax.xml.bind.annotation.XmlRootElement;

@XmlRootElement

public class Todo {
	private String summary;
	private String description;

	public String getSummary() {
		return summary;
	}

	public void setSummary(String summary) {
		this.summary = summary;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

}


2.3 创建一个class来调用jersey

package sample;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;


@Path("/todo")
public class TodoResource {
	// This method is called if XMLis request
	@GET
	@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
	public Todo getXML() {
		Todo todo = new Todo();
		todo.setSummary("This is my first todo");
		todo.setDescription("This is my first todo");
		return todo;
	}

	// This can be used to test the integration with the browser
	@GET
	@Produces({ MediaType.TEXT_XML })
	public Todo getHTML() {
		Todo todo = new Todo();
		todo.setSummary("This is my first todo");
		todo.setDescription("This is my first todo");
		return todo;
	}

}


2.4 web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">
	<display-name>sample</display-name>
	<servlet>
		<servlet-name>Jersey REST Service</servlet-name>
		<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
		<init-param>
			<param-name>com.sun.jersey.config.property.packages</param-name>
			<param-value>sample</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>Jersey REST Service</servlet-name>
		<url-pattern>/rest/*</url-pattern>
	</servlet-mapping>
</web-app> 


2.5 部署项目,然后通过浏览器来测试

输入url: http://localhost:8080/jersey2/rest/todo

可以看到RESTful web service的输出:


为了更清楚一点,我用Chrome浏览器的Postman来测试一下,这是一个RESTful的客户端。



小结:

可以看到在Java中,可以通过JAX-RS+JAXB非常方便的实现RESTful web service。

直接在对象中定义url以及get,post,put,delete等方法就行了。


用Python玩转农业大数据:从Landsat遥感影像到作物产量预测实战教程 本文详细介绍了如何利用Python处理Landsat遥感影像数据,并结合土壤信息构建作物产量预测模型。从环境搭建、数据预处理到模型训练与可视化,提供了一套完整的农业大数据分析实战方案,帮助读者掌握遥感影像处理和机器学习在精准农业中的应用。 阅读详情

相关推荐

计算机网络之NAT的解释与实验配置

NAT 静态NAT 动态NAT easy_ip NAT服务器映射

爱学习的JackYang的博客 1918

Jersey 实现Rest service

本系列的Jersey主要是快速介绍如何使用Jersey建立RESTful service,记录自己在学习过程中使用或遇到的问题。在最开始会使用轻量级的Grizzly HTTP server发布RESTful service. 1. 使用Mave创建工程 在pom.xml文件中加入如下以来的jar, jersey-server是实现service side的RESTful, jersey-grz

u010395804的专栏 1183

ADF4002分频器避坑指南:常见配置错误及解决方案

本文深入解析了ADF4002分频器在实战应用中的常见陷阱与解决方案。内容涵盖寄存器配置逻辑、硬件PCB布局要点、软件驱动时序细节及系统化调试方法,重点阐述了如何避免因配置错误导致芯片无法正常工作的问题,帮助工程师高效完成高精度频率合成系统设计。

weixin_29192141的博客 96

jersey restful 测试_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....

weixin_34314939的博客 631

从0开始写Vue项目-环境和项目搭建

什么是VueVue.js - 渐进式 JavaScript 框架 | Vue.js (vuejs.org)2.介绍与描述动态构建用户界面的渐进式JavaScript框架作者:尤雨溪3.Vue的特点遵循MVVM模式编码简洁,体积小,运行效率高,适合移动/PC端开发它本身只关注UI,可以引入其它第三方库开发项目4.与其他JS框架的关联借鉴 Angular 的模板和数据绑定技术借鉴 React 的组件化和虚拟DOM技术5.Vue周边库vue-cli:vue脚手架axios。

不愧是暮言的博客 1483

ASIC--DFT可测性设计工程师

DFT是什么? DFT是design for test(可测性设计)的缩写,就是在芯片设计过程中,加入可测性逻辑。有的公司把该职位归到前端设计,有的归到中端实现。 DFT职位大多分布于规模较大的数字IC设计公司里,因为大公司对芯片品质要求高,而且规模越大,芯片越贵,DFT就越复杂越重要。DFT主要是通过在芯片中加入可测性逻辑,等芯片制造出来,在ATE(AutomaticTestEquipmen...

TroubleMaker 2万+

Jersey—— 一个基于Rest风格的Web Service开发框架

一、什么是Jersey    Jersey 是一个Java规范(JAX-RS)下的基于Rest风格的Web Service开发框架。   说的直白一点,主要应用于移动项目,用来给移动终端和服务端传递数据。   Rest 则是一种目前主流的软件架构风格,它可以通过一套统一的接口为 Web,iOS和Android提供服务。因为有些平台不需要显式的前端,只需要一套提供服务的接口,于是就有了Rest

babylove_BaLe的博客 3108

Python爬虫实战:如何爬取12306列车信息

本文介绍了如何使用Python编写爬虫,抓取12306列车信息。我们讲解了如何分析12306的列车数据接口,如何发送HTTP请求,解析返回的JSON数据,并将数据保存到本地文件中。我们还讨论了如何绕过反爬虫机制,如使用随机User-Agent和设置请求延时。通过这个实战项目,你应该掌握了如何爬取并解析来自公共API的数据,同时提高了你的爬虫技能。这些技能不仅适用于12306列车信息抓取,也可以广泛应用于其他需要抓取JSON数据的网站。

2201_76125261的博客 1922

Web——Jersey

Jersey

十年梦归尘的专栏 272

YOLOv12超参数智能优化:基于内置Ray Tune的自动化调优实战指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 目标检测模型的性能瓶颈往往源于超参数配置不当。传统手动调优方式不仅耗时耗力,且难以找到全局最优解。YOLOv12集成的Ray Tune框架为解决这一难题提供了完整方案,通过分布式异步优化算法,可实现超参数搜索效率的指数级提升。实际测试表明,采用Ray Tune自动调优的YOLOv12模型,在COCO数据集上mAP指标平均提升3.8%,收敛速度加快2.1倍。在VisDrone无人机数据集上的跨域测试

LXY_LOVE36的博客 119

装配完整性检查系统:基于YOLOv10的螺丝/零件缺失自动检测(含UI界面与完整代码)

建议自行采集装配场景数据,标注缺失螺丝、错误零件等,模拟真实缺陷。手机/工业相机采集图像;使用LabelImg进行目标标注;转换为 YOLO 格式。本文构建了一个完整的装配完整性检测系统,基于 YOLOv10 实现高精度螺丝缺失检测,并使用 PyQt5 构建了图形界面,实现一键导入与可视化检测流程,适用于工业质检自动化部署。项目可灵活扩展至零件缺失、错装、错位、顺序错误等检测场景,是深度学习在制造业中落地的典型应用案例之一。

YOLO 701

webservice框架jersey简单总结

项目中更需要使用到webservice,具体的是使用jersey。那么首先需要了解jersey和webservice的关系,捋顺webservice框架的各种实现,通过查阅相关博客,我个人总结webservice的结构图如下:   通过上图,大概可以了解到webservice和jersey的关系了,然后我们需要了解RESTful是什么,自己也是说不太清楚,所以可以看这个博客地址:REST介...

dyy_gusi的博客 561

51单片机 DHT11温湿度传感器LCD显示+串口打印+Proteus仿真

DHT11+LCD1602+串口输出+Proteus仿真

perseverance51博客 7198

Jersey框架一:Jersey RESTful WebService框架简介

开发RESTful WebService意味着支持在多种媒体类型以及抽象底层的客户端-服务器通信细节,如果没有一个好的工具包可用,这将是一个困难的任务 为了简化使用JAVA开发RESTful WebService及其客户端,一个轻量级的标准被提出:JAX-RS API Jersey RESTful WebService框架是一个开源的、产品级别的JAVA框架,支持JAX-RS API并且是一个JAX-RS(JSR 311和 JSR 339)的参考实现 Jersey不仅仅是一个JAX-RS的参考实现,Jers

怀揣梦想,努力前行 13万+

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Web编程学习五: 使用Jersey和JPA来创建RESTful WebService

在上一个练习学习了如何使用Jersey,以及JAXB来创建RESTful的web service。 现在我来结合后台数据库对其做升级,也就是通过Jersey创建用来修改后台数据库的RESTful web service。 开发环境: Eclipse Juno, 数据库MySQL 5.5, Jersey 1.18,EclipseLink 2.4, JAVA 1.6, 应用服务器Tomc

Unplugged 7840

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

使用Jersey来创建RESTful WebService

RESTful Web Service是轻量级的service,可以通过HTTP的方式来实现对后台数据库的CRUD, 在Web开发和移动开发时使用的比较广泛,非常方便。 在Java世界里, JAX-RS规范定义了对RESTful Web Service的实现。 Oracle的Jersey框架则是对JAX-RS的一个实现。 下面我们学习如何使用Jersey来创建RESTful WebSe

~ Caesar's wish书屋 ~ 451

使用java实现Restful webservice(Jersey)

在Eclipse中使用Jersey和Tomcat构建RESTful WebService及其调用

cajan2的专栏 2762

接口框架 : WebService与Jersey RESTful 要点梳理

最近涉及到用Jersey RESTful 的WebService框架,抽空把这段时间的要点整理成了一篇博文。 一 .常用的接口框架 不同于我们知道的Java接口(interface),此处的接口是指我们的远程调用接口。通过调用远程接口达到调用服务或者请求数据等目的。 通常我们的接口调用方式一般有三种:先粗略的过一遍。 1.HttpClient HttpClient是基于HTTP 协议的客户端连接方...

574

使用jersey和maven开发RESTFul WebService

jersey是一种RestFul Webservice开发框架,作为JSR311的开源实现,替代了原有的基于SOAP的Web服务。jersey提供了更为简洁的API,提供了更为简洁的开发模式。 在实际应用中,将基于maven构建开发环境,主要其他工具包括:jersey1.8、Junit4、jersey-json。使用webservice访问实现对数据库的CRUD模拟操作。 pom.xml核...

yh_honored的博客 386

jersey restful 测试_webservice系列之-RESTful Web Service框架Jersey详解

课程简介:课程目的:通过本课程学习,掌握基于Jersey的RESTful Web Service的开发,解决项目中采用该框架进行开发的实际相关问题。适用人群:具有一定Java开发基础的开发人员。课程概述:Jersey 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范,是JAX-RS标准的参考实现,是 Java 领域中的REST开发框架。 J...

weixin_26735445的博客 209

java jersey restful 详解

前言 在短信平台一期工作中,为便于移动平台的开发,使用了Java Jersey框架开发RESTFul风格的Web Service接口。在使用的过程中发现了一些问题并积累了一些经验。因此,做下总结备忘,同时也希望对有需要的同仁有好的借鉴和帮助。 简介 Jersey是JAX-RS(JSR311)开源参考实现用于构建RESTful Web service,它包含三个部分: 核心服务器

u010395804的专栏 4714

使用Jersey RestFul创建webservice实例

甲方要求所有厂商提供一个restful的接口监控自己的所有服务及数据库是否正常,在此之前都不知道什么是restful。。。。没办法硬着头皮上。下面是我对restful的简单了解以及应用实例,希望能帮助到跟我一样的小白。 实现Restful 有两种一种是由Jersey提供的,另一种是Apache CXF的,本文介绍的是Jersey Restful。Apache CXF在下一篇始终介绍。 什么是R

sinat_35061904的博客 448

webservice框架_webservice系列之-RESTful Web Service框架Jersey详解

课程简介:课程目的:通过本课程学习,掌握基于Jersey的RESTful Web Service的开发,解决项目中采用该框架进行开发的实际相关问题。适用人群:具有一定Java开发基础的开发人员。课程概述:Jersey 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范,是JAX-RS标准的参考实现,是 Java 领域中的REST开发框架。 J...

weixin_39727005的博客 217

Spring + Jersey构建发布Restful WebService

Spring和maven的搭建参考相关文档,本文只介绍与jersey有关配置。 环境: Eclipse 4.1 JDK 1.6 OS win7 Maven 3.1 spring  2.5.6 jers

cqboy1991的专栏 1759

使用SpringBoot整合Jersey 实现Restful webservice.可以同时使用springmvc。

1、pow依赖&lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apac

梦境迷离 2581

【jersey】 spring 整合jersey 实现RESTful webservice

Jersey是一个RESTFUL请求服务JAVA框架,与常规的JAVA编程使用的struts框架类似,它主要用于处理业务逻辑层。与Struts类似,它同样可以和hibernate,spring框架整合。 由于Struts2+hibernate+spring整合在市场的占有率太高,所以很少一部分人去关注Jersey。所以网上有关于Jersey的介绍很少。但是它确实是一个非常不错...

a84480766的博客 231

RESTful之Jersey学习-01

因为看Saiku的源码用到了Jersey开源的RESTful框架,所以稍微简单的介绍下入门 JDK 1.7 Jersey 2.10 开发工具IDEA Maven3 目标:搭建一个最简单的 1、创建一个Maven项目 因为我想看这个开发的基本上不可能不会建立项目吧,如果不会Maven最好还是学习下,因为JAR包的依赖真的是恶心,受不鸟。 2、加入Jersey依赖的Jar

错在葡萄 804
上一篇: Web编程学习三: 使用SAPUI5来创建Web应用UI
下一篇: Web编程学习五: 使用Jersey和JPA来创建RESTful WebService
W1nt3rs
W1nt3rs 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄22年 977粉丝 301原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值