jersey 入门示例_Jersey Web Service Hello World Java示例

jersey 入门示例

在Restlet之后, Jersey是另一个流行的开源框架,可以用Java创建RESTful Web服务 。 Jersey符合JAX-RS规范,实际上它是JAX-RS(JSR 311)(http://jsr311.java.net/nonav/releases/1.1/index.html)规范的参考实现。 在上一篇文章中,我们看到了Restlet HelloWorld示例 ,今天我们看到了Jersey HelloWorld示例 。 通常,当开发人员考虑使用Java创建RESTful Web服务时,他们会假定使用Java EE应用程序服务器是创建此类应用程序的唯一方法。 但是,有更简单,轻便的替代方法可用于创建可使用Java SE的RESTful应用程序。 本教程演示了使用Grizzly Web服务器和Jersey REST框架的一种替代方法。 Grizzly的主要用例是GlassFish应用程序服务器的Web服务器组件。

泽西岛HelloWorld示例

这是使用Jersey REST框架创建的简单RESTful Web服务。 当GET请求发送到“ / hello” URL时,此服务返回一条消息。 如果该请求还包含一个请求参数,那么它将在响应消息中使用。

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;@Path(value = "/hello")
public class JerseyHelloWorldRESTService {@GET
@Path(value="/{param}")
public String hello(@PathParam(value = "param") String name){return "Hello " + name + ", Welcome to Jersy world of RESTful web service";
}}

错误

球衣开始灰熊……

Jun 01, 2016 3:57:19 PM com.sun.jersey.api.core.PackagesResourceConfig init
INFO: Scanning for root resource and provider classes in the packages:Jun 01, 2016 3:57:19 PM com.sun.jersey.api.core.ScanningResourceConfig logClasses
INFO: Root resource classes found:
class JerseyHelloWorldRESTService
Jun 01, 2016 3:57:19 PM com.sun.jersey.api.core.ScanningResourceConfig init
INFO: No provider classes found.
Exception in thread "main" java.lang.IllegalArgumentException: No container provider supports the type class org.glassfish.grizzly.http.server.HttpHandler
at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:196)
at com.sun.jersey.api.container.ContainerFactory.createContainer(ContainerFactory.java:134)
at com.sun.jersey.api.container.grizzly2.GrizzlyServerFactory.createHttpServer(GrizzlyServerFactory.java:242)
at JerseyServer.startServer(JerseyServer.java:24)
at JerseyServer.main(JerseyServer.java:28)

如果出现上述错误,则可以添加以下Maven依赖项(org.glassfish.jersey.containers jersey-container-jdk-http)解决问题:com.sun.net.httpserver.HttpHandler”):

<dependency><groupId>org.glassfish.jersey.containers</groupId><artifactId>jersey-container-jdk-http</artifactId><version>2.18</version></dependency>

您可以根据您的环境更改版本。 请记住,异常的错误消息显示“没有容器提供程序支持类型接口”。 这种依赖关系提供了运行
泽西岛 。

当心Jersey和Jersey2之间的差异

很容易将两个不同版本的Jersey混淆,在第一个版本中,类属于com.sun.jersey;在第二个版本中,框架类归于org.glassfish.jersey。 本质上,只有软件包是不同的,但是具有各种相关的JAR,Jersey 1.x中的JAR与Jersey2.x中的JAR混合在一起很容易并令人恐惧。
NoClassDefFoundError及其近亲ClassNotFoundException 。

软件包名称已更改,因为Jersey团队现在是Glassfish的一部分。 以下版本2使用的是com.sun.jersey软件包,但由于该公司与众不同,因此他们使用的是org.glassfish.jersey。 是的,版本1.x和2.x之间在代码方面存在更多差异。 关键要点不会将Jersey 1.x的类和JARS与Jersey 2.x混合在一起,请参阅
这里有关于错误的更多细节。

这就是有关Jersey Hello世界示例的全部内容。 Jersey框架不只是JAX-RS参考实现。 Jersey提供了自己的API,该API用其他功能和实用程序扩展了JAX-RS工具包,以进一步简化RESTful服务和客户端开发。 Jersey还公开了许多扩展SPI,以便开发人员可以扩展Jersey以最适合其需求。

您可能喜欢的其他Java REST Web服务教程

  • REST和SOAP Web服务之间的区别? ( 回答 )
  • 十大REST Web服务面试问题( 回答 )
  • 使用依赖注入的Spring HelloWorld示例( 教程 )
  • REST Web Service中的PUT与POST之间的区别? ( 文章 )
  • 如何使用Spring创建JDBC连接池? ( 教程 )
  • 如何使用Jackson解析大型JSON响应? ( 教程 )
  • Java开发人员的20个Hibernate面试问题( 文章 )
  • HTTP中幂等方法和安全方法之间的区别? ( 回答 )
  • 如何在Java中将JSON数组转换为String数组? ( 教程 )

参考

https://jersey.java.net/

PS –如果您想了解有关使用Jersey或Restlet在Java中开发RESTful Web服务的更多信息,建议您首先阅读一本有关JAX-RS的好书,这是这些框架背后的标准,例如
RESTful Java with JAX-RS 2.0 ,这是一本学习如何设计和开发分布式Web服务的好书。

PS –如果您想学习如何使用Spring Framework开发RESTful Web服务,请查看Eugen Paraschiv的
REST与Spring课程 。 他最近启动了该课程的认证版本,其中包含许多练习和示例,可以进一步巩固您将从该课程中学到的真实概念。

翻译自: https://www.javacodegeeks.com/2017/06/jersey-web-service-hello-world-example-java.html

jersey 入门示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334873.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

php domdocument getelementbyid,PHP DOMDocument- getElementByID添加Â代替空

PHP DOMDocument-> getElementByID添加代替空(PHP DOMDocument->getElementByID adding in place of empty )我正在使用PHP的DOMDocument对象来解析一些HTML(使用cURL获取)。 当我按ID获取元素并输出它时&#xff0c;任何空的 标记都会获得一个额外的字符并变为 。代码…

Linux 命令之 whois 命令-用于查找并显示用户信息

文章目录介绍参考示例介绍 whois指令会去查找并显示指定帐号的用户相关信息&#xff0c;因为它是到Network Solutions的WHOIS数据库去查找&#xff0c;所以该帐号名称必须在上面注册方能寻获&#xff0c;且名称没有大小写的差别。 参考示例 [rootlocalhost www]# whois root…

gptuefi优势_UEFI+GPT的区别,有啥不同?写的很详细易懂

搜索相关知识时看到的好文章&#xff0c;由于百度空间挂了&#xff0c;在此注明出处作者QQ:407647406以表谢意&#xff0c;原地址戳我其实楼主早就知道UEFI&#xff0c;曾经也一直关注并试图了解&#xff0c;无奈限于当时国内有关资料匮乏&#xff0c;实在找不到什么使用有效能…

oauth2和jwt_OAuth2,JWT,Open-ID Connect和其他令人困惑的事物

oauth2和jwt免责声明 如果觉得我必须从一个重要的免责声明开始这篇文章&#xff1a; 不要太相信我要说的话。 我之所以这样说&#xff0c;是因为我们正在讨论安全性。 而且&#xff0c; 当您谈论安全性时&#xff0c;除了100&#xff05;正确的陈述外&#xff0c;还有冒任何其他…

matlab的exec程序,C++调用Matlab画图的一段程序

劳动节闲来无事&#xff0c;写了一天程序&#xff0c;just for fun.看&#xff0c;这是C调用Matlab画图的一段程序。暂时不想多解释了&#xff0c;有兴趣的话&#xff0c;看看下面的代码吧。以下几段代码由上到下&#xff0c;越来越旧。最上面的是最新更新的版本。#include#inc…

Linux 命令之 iwconfig 命令-配置无线网络接口

文章目录介绍常用选项参考文档介绍 使用iwconfig命令可以为无线接口显示或设置网络接口的参数&#xff0c;它可以用来配置无线网络接口&#xff0c;是非常好用的。 常用选项 选项说明essid设置无线网卡的ESSID(Extension Service Set ID)。通过ESSID来区分不同的无线网络&am…

java gc cms_Java垃圾收集器:G1GC何时将CMS强制退出?

java gc cms在针对JDK 9&#xff08;2017/4/4&#xff09;提出的JEP中 &#xff0c; Mark Reinhold写道JEP 291 &#xff08;“弃用并发标记扫描&#xff08;CMS&#xff09;垃圾收集器”&#xff09;是“已被放置在在讨论和审查后&#xff0c;由所有者将其定位为目标”。 如果…

ios 高德地图加载瓦片地图_IOS 高德地图 API 加载 WMS 服务

IOS 高德地图 API 加载 WMS 服务本文主要介绍通过自定义高德地图 MATileOverlay 接口&#xff0c;添加 WMS 服务到地图上。废话少说&#xff0c;先贴代码。代码自定义类 WMSTileOverlayUtil&#xff0c;继承自高德地图接口 MATileOverlay&#xff0c;主要重载函数&#xff1a;-…

Linux 命令之 iwlist 命令-从无线网卡获取更详细的无线信息

文章目录介绍常用选项命令示例介绍 iwlist 命令用于对 /proc/net/wireless 文件进行分析&#xff0c;得出无线网卡相关信息。 常用选项 选项说明scanning搜索当前无线网络frequen显示频道信息rate显示连接速度power显示电源模式txpower显示功耗retry显示重试连接次数(网络不…

drools dmn_DMN 1.1 XML:从建模到使用Drools 7.0的自动化

drools dmn我是一名自由顾问&#xff0c;但今天我是一名博士生。 本文的全球背景是企业架构&#xff08;EA&#xff09;&#xff0c;它需要对企业进行建模。 由于EA的一个方面是业务流程建模&#xff0c;所以我使用BPMN已有数年之久&#xff0c;但是这种表示法并不十分适合表示…

矩阵期望 matlab,matlab中矩阵元素求和、求期望和均方差

在matlab中求一个矩阵中元素的和可以自己编写for循环来完成&#xff0c;这样比较方便&#xff0c;想求那些数据的和都可以做到&#xff0c;然而效率比较低&#xff0c;如果数据量大程序会跑好长时间。所以我们可以转而用matlab提供的sum函数。设M为一个矩阵&#xff0c;那么&am…

python默认字体大小_python – 如何设置PIL加载的默认字体的大小,使其适合我的8×8矩阵?...

我正在努力在88矩阵显示器上显示文本,而且我没有在我的BeagleBone上知道的.ttf文件.根据示例here,我应该能够说font ImageFont.load_default()而不是加载.ttf,但是,这显然不是指定字体的尺寸&#xff01;有什么办法吗&#xff1f;或者,是否有一个地方你知道我可以在我的BBB版本…

Linux 命令之 tcpdump -- 监听网络流量

文章目录命令介绍参考文档命令介绍 tcpdump 命令是一款 sniffer 工具&#xff0c;是 Linux 上的抓包工具&#xff0c;嗅探器&#xff1b;它可以打印出所有经过网络接口的数据包的头信息。 tcpdump 命令工作时先要把网卡的工作模式切换到混杂模式。所以 tcpdump 命令需要以 ro…

java args_Java命令行界面(第2部分):args4j

java args在上一篇文章中 &#xff0c;我研究了使用Apache Commons CLI在Java应用程序中解析命令行参数。 在本文中&#xff0c;我将使用另一个库args4j进行相同的操作。 args4j采用了一种不同于Commons CLI的方式来指定Java应用程序应期望的命令行参数。 尽管Commons CLI期望…

php点击后增加html元素,如何动态生成html元素以及为元素追加属性的方法介绍(附代码)...

本篇文章给大家分享的是关于如何动态生成html元素以及为元素追加属性的方法介绍(附代码)&#xff0c;内容很不错&#xff0c;有需要的朋友可以参考一下&#xff0c;希望可以帮助到大家。动态生成HTML元素的方法有三种&#xff1a;第一种&#xff1a;document.createElement()创…

excel npoi 连接_Net操作Excel_NPOI(示例代码)

Npoi 简介1.整个Excel表格叫做工作表&#xff1a;WorkBook(工作薄)&#xff0c;包含的叫页(工作表)&#xff1a;Sheet&#xff1b;行&#xff1a;Row&#xff1b;单元格Cell。4.忘了告诉大家npoi是做什么的了&#xff0c;npoi 能够读写几乎所有的Office 97-2003文件格式&#x…

apache camel_Apache Camel中的短重试与长重试

apache camel《骆驼设计模式》一书介绍了20种模式以及用于设计基于Apache Camel的集成解决方案的众多技巧和最佳实践。 每种模式都基于真实的用例&#xff0c;并提供了Camel特定的实现细节和最佳实践。 为了让您有这本书的感觉&#xff0c;以下是该书的重试模式摘录&#xff0c…

Linux 命令之 netstat -- 查看网络状态信息/显示网络状态

文章目录命令介绍常用选项参考示例&#xff08;一&#xff09;列出所有端口&#xff08;二&#xff09;列出所有 TCP 端口&#xff08;三&#xff09;列出所有 UDP 端口&#xff08;四&#xff09;只显示监听端口&#xff08;五&#xff09;只列出所有监听 tcp 端口&#xff08…

pyqt5 窗口设置圆角_Qt 的一些心得(背景设置,圆角,半透明)

一. 背景刷成黑色,前景色设为白色。 方法一、paltette方式&#xff0c;经测试&#xff0c;该方法不会影响到其他控件,推荐使用 QPalette bgpal palette();bgpal.setColor (QPalette::Background, QColor (0, 0 , 0, 255));//bgpal.setColor (QPalette::Background, Qt::transp…

java语言发展历史_Java编程语言的历史和未来

java语言发展历史通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用&#xff01; 作为互联网上著名的编程语言 &#xff0c;Java对人们如何浏览数字世界产生了深远的影响。 Java功能设置了用户对他们访问互联网的设…