使用Jersey框架实现RESTfulWebService

jersey 实现restful服务 jersey构建简单的Restful服务! 立即下载
RESTful方式WebService服务的实现及客户端调用

REST方式与SOAP方式区别比较:

·成熟度

    SOAP目前成熟,不同平台,开发语言之间通过SOAP来交互的web service都能够较好的互通。REST相对不太成熟,由于没有类似于SOAP的权威性协议作为规范,REST实现的各种服务风格不一,通用性不强。

·效率和易用性

    SOAP使用门槛高(学习成本高,开发难度大),由于SOAP由于各种需求不断扩充其本身协议的内容,在大并发下性能有所下降。REST目前大量的Web 2.0网站使用,高效以及简洁易用。这种高效一方面源于其面向资源接口设计以及操作抽象简化了开发者的不良设计,同时也最大限度的利用了Http最初的应用协议设计理念。REST是一种轻量级的Web Service架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用缓存Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。

·安全性

    SOAP在安全方面是通过使用XML-Security和XML-Signature两个规范组成了WS-Security来实现安全控制的,当前已经得到了各个厂商的支持,.net,php,java都已经对其有了很好的支持。REST没有任何规范对于安全方面作说明。因此在考虑安全性上,SOAP要高于REST。
    总的来说,REST对于资源型服务接口来说很合适,同时特别适合对于效率要求很高,但是对于安全要求不高的场景。而SOAP的成熟性可以给需要提供给多开发语言的,对于安全性要求较高的接口设计带来便利。

·小结:

01)SOAP成熟度高于REST方式

02)SOAP安全性高于REST方式

03)REST效率和易用性高于SOAP方式

利用Jersey框架实现RESTwebservice:

RESTweb服务端的创建:

01)进入Jersey官网(https://jersey.java.net/)下载需要用到的jar包(我用的是2.25.1)

02)在Eclipse中创建一个Web Project(项目名为JavaRestWebService)

03)将刚刚下载的jar包放入/JavaRestDemo/WebRoot/WEB-INF/lib/中

04)创建包net.tcc.main,并在其中创建类HelloWorld.java

05)将项目部署到Tomcat并启动

06)在浏览器地址栏中输入http://localhost:8080/JavaRestWebService/rest/helloworld?name=AA

07)得到My name is AA, Hello World!,即为RESTweb服务创建成功.

HelloWorld.java代码:

package net.tcc.main;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.*;
import javax.ws.rs.core.*;
@Path("/helloworld")
public class HelloWorld {
	@Context
    HttpServletRequest request;
    @Context
    HttpServletResponse response;
    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String getResult(@QueryParam("name") String name){
        return result(name);
    }   
    @POST
    @Produces(MediaType.TEXT_PLAIN)
    public String postResult(@QueryParam("name") String name){
        return result(name);
    }
    private String result(String name){
    	System.out.println(name);
    	  try {
              name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
          } catch (UnsupportedEncodingException e) {
              e.printStackTrace();
          }
        response.setCharacterEncoding("UTF-8"); 
        return "My name is " + name + ", Hello World!";
    }
}

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" 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>RESTWebServices</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <servlet>
        <servlet-name>helloworldservlet</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>net.tcc.main</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    
    <servlet-mapping>
        <servlet-name>helloworldservlet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
</web-app>

RESTweb客户端的创建:

01)创建java web项目,并将所有Jersey的jar包放入lib目录下

02)创建net.tcc.test包和JavaRestWebClient.java类

03)运行该类中的main方法,工作台输出 My name is BB,Hello World! 即为访问成功.

JavaRestWebClient.java代码:

package test;
import javax.ws.rs.client.Client;  
import javax.ws.rs.client.ClientBuilder;  
import javax.ws.rs.client.WebTarget;  
import javax.ws.rs.core.Response; 
public class JerseyTest {  
    public static void main(String[] args) {  
    	Client client = ClientBuilder.newClient();
        WebTarget target = client.target("http://localhost:8080/JavaRestWebService/rest/helloworld?name=BB");  
        Response response = target.request().get();
        System.out.println(response.readEntity(String.class));
        response.close();
    }  
}


(尊重劳动成果,转载请注明出处:http://blog.youkuaiyun.com/ud_world/article/details/78973786  ud_world的博客)
java+restful+Jersey+webservice 远程调用 java项目REST方式使用Jersey技术实现webservice远程调用,内附使用说明文档和Jersey包,方便学习和查阅,最重要的是我的资源优势就是物美价廉哟~~ 立即下载

相关推荐

jersey实现restful简单实例

jersey的使用简单实例

在同一个系统里用cxf 实现SOAP 协议和RESTful风格 两种类型的webservice接口(含简单demo)

1,依赖jar 我的Spring 是4.0.8版本的不同版本之间可能会有冲突,需要耐心的试试 &lt;dependency&gt; &lt;groupId&gt;org.apache.cxf&lt;/groupId&gt; &lt;artifactId&gt;cxf-rt-frontend-jaxws&lt;/artifactId&gt; &lt;ver...

zhaofuqiangmycomm的博客 3933

2021-03-08 使用SPDK部署NVMe over TCP

NVMe-oF Target入门指南 SPDK NVMe over Fabrics Target是一个用户空间应用程序,通过以太网,Infiniband或光纤通道等结构呈现块设备,SPDK目前支持RDMA和TCP传输。 本文将在已经编译好SPDK的基础上演示如何使用SPDK搭建NVMe over TCP,前提是您已经将一块NVMe硬盘挂载到linux系统中。 如果您想获取有关SPDK更详细的信息,请参考 官方文档。 演示过程的Host主机的ip地址是192.168.0.21,Target主机的ip地址是19

Pancras的博客 2843

Java RESTful Web Service实战(第2版) 1.6 快速了解Java REST服务

1.6 快速了解Java REST服务 1.6.1 REST工程类型 在REST服务中,资源类是接收REST请求并完成响应的核心类,而资源类是由REST服务的“提供者”来调度的。这一概念类似其他框架中自定义的Servlet类,该类会将请求分派给指定的Controller/Action类来处理。本节将讲述REST中的这个提供者,即JAX-RS2中定义的Ap...

weixin_33672109的博客 370

yolov5部署之七步完成tensorRT模型推理加速

目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo

Christo的博客 4万+

鸿蒙设备部署轻量级Web服务器NexServer实践

Web服务器作为互联网基础设施的核心组件,其轻量化部署在移动终端领域具有重要实践价值。本文以鸿蒙操作系统为技术载体,深入解析微内核架构如何通过资源隔离和分布式软总线实现服务高可用。重点探讨NexServer这一专为嵌入式场景设计的轻量级服务器,其ARM原生支持特性与15MB级内存占用,在HTTP/2协议处理与WebSocket通信中展现出独特优势。在智能家居控制面板、边缘计算节点等物联网典型场景中,鸿蒙设备结合NexServer的方案相比传统Nginx部署可降低60%资源消耗。通过实测数据对比,该组合在50

weixin_30411239的博客 481

jersey实现web service接口+客户端调用

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

YvesHe的专栏 2692

【测试】echo发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包

目录 通过/dev/tcp、/dev/udp shell给tcp或udp服务发送16进制报文指令 通过/dev/tcp、/dev/udp (https://blog.youkuaiyun.com/u010039418/article/details/86251470) 通过/dev/tcp、/dev/udp可以直接在shell脚本中发起tcp、udp连接,方便又高效,平时用于测试啥的还是挺方便的。 直接发送 格式 /dev/udp/ip/port 比如要向本地10001端口发送数据,可以使用 ec.

我的笔记本 1万+

Jersey调用Webservice Restful接口

Jersey调用Restful接口接口定义: 接口调用 import com.neefull.dataexchange.util.StrUtils; import com.neefull.dataexchange.util.WebServiceUtils; import com.neefull.dataexchange.util.XmlUtils; import com.neefull

本来无一物,何处惹尘埃? 766

Python环境搭建和LabVIEW中的调用

本文主要介绍Python相关的环境搭建、Anaconda的使用以及在LabVIEW中调用Python的方法。

lvxisi的博客 6390

美团mtgsig 1.2算法分析

mtgsig1.2的一些算法总结

记录一些web逆向的过程 3502

使用Jersey开发RESTful的webservice服务

REST基础概念: 在REST中的一切都被认为是一种资源。 每个资源由URI标识。 使用统一的接口。处理资源使用POST,GET,PUT,DELETE操作类似创建,读取,更新和删除(CRUD)操作。 无状态。每个请求是一个独立的请求。从客户端到服务器的每个请求都必须包含所有必要的信息,以便于理解。 通信都是通过展现。例如XML,JSON RESTful Web服务由于其简单替代

毅个混蛋的专栏 3143

【第48例】BLM模型之市场洞察-五看工具篇(一)

BLM市场洞察

产品线负责人 2109

如何在SpringBoot项目中兼容Jersey和SpringMVC框架?

今天特地研究了一下Jersey框架整合SpringMVC的问题,发现MVC的请求会失效,如果直接引入jersey框架,然后最后通过配置两个框架请求来解决问题

zly03的博客 922

YOLO26涨点改进 | 检测头改进篇 | 利用ASFF改进YOLO26检测头,自适应空间特征融合模块,在所有的目标检测上均有大幅度的涨点效果

本文提出了一种自适应空间特征融合(ASFF)检测头YOLO26,用于解决目标检测中特征金字塔跨尺度特征不一致的问题。ASFF通过学习空间权重图,自适应地融合不同尺度的特征,抑制特征层间的冲突信息。实验表明,该方法在MSCOCO数据集上显著提升了检测精度(45FPS下AP达42.4%),且仅引入极小推理开销。ASFF模块具有可微分性、模型无关性和计算成本低等优势,能够有效改善特征尺度不变性,实现速度与精度的良好平衡。文章详细介绍了ASFF的原理、实现代码及其在YOLO模型中的集成方法。

Ai缝合怪、助力小伙伴高效发论文 553

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Jersey—建立restfulwebservice—实例

Jersey有很多非常好的例子 https://jersey.java.net/download.html

有 prepare , No out 893

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

使用 Jersey + Tomcat 輕鬆開發 RESTful Web Service

最近的案子使用到Restful Web Service, 網路上找了一些關於Jersey + Tomcat 開發 RESTful Web Service的教學, 但實際照圖施工,總是讓我一次次失望,run不起來, 後來發現,原來是因為版本不同,Jersey套件放的名稱已經改變, 所以這邊整理一下最新的設定方式。   附帶一提,必須run在Tomcat 6.0才行,5.5版本會有

u010395804的专栏 1709

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Java Jersey2使用总结

原文http://blog.segmentfault.com/lenbo_ma/1190000000495321 主题Java 前言 在短信平台一期工作中,为便于移动平台的开发,使用了Java Jersey框架开发RESTFul风格的Web Service接口。在使用的过程中发现了一些问题并积累了一些项目经验,做了一下总结,便于个人成长,同时也希望对有需要的同...

andaren6337的博客 159

spring整合jersey2.X实现JAX-RS2.0(JSR311) Restful WebService

前言 这几天公司新项目用要搭建一个基于spring和jersey实现的REST webservice,maven环境是沿用的以前项目的pom,整个过程弄了半天才弄好,记录下来以备翻看,也为偶尔路过的朋友提供一份参考,不足之处敬请谅解 开发环境 eclipse Kepler + tomcat7 + jdk1.7 + maven WEB环境配置 由于我们要实现的是jax

kissjoey的专栏 2613

Web:Jersey

Getting Started Reference Documentation For further reference, please consider the following sections: Official Apache Maven documentation Spring Boot Maven Plugin Reference Guide Create an OCI image Spring Web Rest Repositories Spring HATEOAS Spring Web

[Blog][Domain] programb.blog.youkuaiyun.com 355

Jersey 客户端 API 基础

Jersey 客户端 API 基础  要开始使用 Jersey 客户端 API,你首先需要创建一个 com.sun.jersey .api.client.Client类的实例。下面是最简单的方法: import com.sun.jersey .api.client.Client; Client client = Client.create(); Client 类是创建一个 RESTfu

特立独行的猿 1657

Java下RESTful WebService的实现框架介绍

Java下RESTful WebService的实现框架介绍 Java下RESTful WebService的实现框架介绍   Web Service更多是一种标准,而不是一种具体技术。不同的平台,不同的语言大都提供WebService的开发实现,在Java领域,WebService的框架很多,例如:Axis2,Xfire,CXF和Java6自带的WebServic...

yinhong2006的专栏 146

RestfulWebService实现之一--------------Jetty+Jersey方法一

通过Jetty+Jersey实现Restful Web Service一、POM.xml&lt;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/...

zzidea的专栏 444

通过 Jersey 客户端 API 调用 REST 风格的 Web 服务

Jersey 1.0 是一个开源的、可以用于生产环境的 JAX-RS(RESTful Web Services 的 Java API 规范,JSR-311)实现。通过 Jersey 可以很方便的使用 Java 来创建一个 RESTful Web Services。     一篇早期的技术文章——《在 Java 中实现 RESTful Web Services》,介绍了 RESTful,JAX

小英雄 3135

JSR311让Restful WebService变简单

需求 公司有一个产品,包括前台WEB界面和多个后台服务,各个服务都需要在前面界面中进行配置和控制,以调整服务的行为。以前,配置文件都存放在数据库中,界面上修改配置后入库,并发送消息(Socket)通知特定的服务重新加载配置。这样有些问题,一方面自己维护Socket带来很多麻烦,二来数据库重建的时候,需要备份/恢复这些配置数据。 所以,我们想把配置文件局部化到各个服务(比如用本地文件...

yinhong2006的专栏 165

java restful系列一 认识JAX-RS

1. 什么是JAX-RS JAX-RS是JAVA EE6 引入的一个新技术。 JAX-RS即Java API for RESTful Web Services,是一个Java 编程语言的应用程序接口,支持按照表述性状态转移(REST)架构风格创建Web服务。 目前基于JAX-RS实现的框...

chenjieheng9309的博客 190
上一篇: MyBatis和Hibernate相比,优势在哪里?
下一篇: Java项目简单操作MongoDB数据库
君不见#
博客等级 码龄10年 8粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值