Eclipse + Jersey 发布RESTful WebService了解Jersey
Posted 怎么着都不成
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eclipse + Jersey 发布RESTful WebService了解Jersey相关的知识,希望对你有一定的参考价值。
一、下文中需要的资源地址汇总
- Maven
- Apache Maven网站 http://maven.apache.org/
- Maven下载地址: http://maven.apache.org/download.cgi
- Jersey
- Jersey(JAX-RS 2.1 / Jersey 2.26+)下载:https://jersey.github.io/download.html
- Jersey JAX-RS 2.1 RI bundle bundle contains the JAX-RS 2.1 API jar, all the core Jersey module jars as well as all the required 3rd-party dependencies.
- Jersey 2.26 Examples bundle provides convenient access to the Jersey 2 examples for off-line browsing.
- Jersey 2.26 API Documentation在线DOC:https://jersey.github.io/apidocs/latest/jersey/index.html
- Jersey(JAX-RS 2.1 / Jersey 2.26+)下载:https://jersey.github.io/download.html
- findJAR
- 如果需要其他Jar包,可以去findJAR网站下载:http://www.findjar.com/index.x
二、Jersey是什么?了解一下
Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。
它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发。
尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。与Struts类似,它同样可以和hibernate,spring框架整合。
由于Struts2+hibernate+spring整合在市场的占有率太高,所以很少一部分人去关注Jersey。
Jersey1.X的版本是sun公司提供的独立的jar包,在2.X版本中,已经将jersey放在glassfish下(开源)。
(上图原文地址:http://dyygusi.iteye.com/blog/2148029?utm_source=tuicool)
Jersey系列文章:
三、学Jersey前,先看看Maven
特别详细的配置Maven的文章,没什么可多说的,照做即可:原文地址:https://blog.csdn.net/java_2017_csdn/article/details/77450598/
【下面是我做的Step by Step截屏】
第一步、下载Maven,配置settings.xml文件
Maven下载地址: http://maven.apache.org/download.cgi
下载后放在C根目录下。打开settings.xml文件编辑。
编辑的目的是让我们的Maven项目能使用阿里云提供的Maven镜像库提升速度。
如果不做任何配置,默认Maven项目会自动连接使用maven中央库也是OK的。但是,由于中央库在国外, 受到中国防火墙等因素影响,其访问速度很慢, 只有连接到国内镜像库(例如阿里云)才能提高Maven运行速度。
settings.xml文件有2种修改方法:
(1)省事的,把下面“替换settings.xml内容”的内容替换到你本机的settings.xml文件即可,全部替换,原来的文件内容不留。
<?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> <!-- 配置本地MAVEN仓库位置,默认在:C:\\Users\\机器名\\.m2\\repository <localRepository>D:\\Program Files\\mvn\\</localRepository> ** Eclipse->Windows->Preferences->java->Build Path->Classpath Variables --> <pluginGroups> </pluginGroups> <proxies> </proxies> <servers> </servers> <mirrors> <mirror> <id>aliyun</id> <name>aliyun Maven</name> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors> <profiles> </profiles> <activeProfiles> </activeProfiles> </settings>
(2)不懂xml语言,想知道发生了什么的,往下看。啰嗦几句:
打开settings.xml文件,里面是一个带格式的xml标准文件。用<!-- -->括住的部分是注释。例如:
<!-- interactiveMode | This will determine whether maven prompts you when it needs input. If set to false, | maven will use a sensible default value, perhaps based on some other setting, for | the parameter in question. | | Default: true <interactiveMode>true</interactiveMode> -->
去掉注释,你会发现这个文件真正的内容就下面这么多,画圈的每个成对的<>标签中间是具体内容,目前里面都是空。
而我们修改的就是在<mirrors></mirrors>中间添加一段阿里云提供的Maven镜像服务器的配置说明:
<mirror> <id>aliyun</id> <name>aliyun Maven</name> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror>
添加部分:
<!-- 配置本地MAVEN仓库位置,默认在:C:\\Users\\机器名\\.m2\\repository <localRepository>D:\\Program Files\\mvn\\</localRepository> ** Eclipse->Windows->Preferences->java->Build Path->Classpath Variables --> <mirrors> <mirror> <id>aliyun</id> <name>aliyun Maven</name> <mirrorOf>*</mirrorOf> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </mirror> </mirrors> <profiles> </profiles> <activeProfiles> </activeProfiles> </settings>
添加完毕,文件变成这个样子:
阿里云Maven镜像服务器URL: http://maven.aliyun.com/nexus/content/groups/public/,直接在浏览器打开,能看到下面类似的内容就是能连通。
Maven有多方便我还说不好,至少一个显而易见的好处是项目里用到的Jar包不用到处找了,配好Maven,直接从阿里云服务器关联到Project使用。具体本文稍后会介绍。
第二步、配置Eclipse的Maven环境
菜单:Windows→Preference(到现在还记不住这个菜单的面壁1分钟)
只修改Global Setting,指向本文第一步修改好的settings.xml文件,完成。
想检查一下是否配置OK了,打开Maven视图。菜单:Windows→Show View→Other…(到现在还记不住这个菜单的再面壁1分钟)
可以看见Global Repositories里有2项,central中央库就是官网(外网)镜像,aliyun阿里云就是我们在第一步配置的(国内网)镜像。
第三步、创建一个Maven Project
菜单:File→New→Other…(到现在还记不住这个菜单的怎么办?你说怎么办?)
选择:创建一个简单的项目
起名:MavenProj
创建成功。目录结构:
因为这个步骤必须连接到Maven服务器获取相关信息, 如果配置和网络有故障则这个步骤就会出现错误!如果出现错误请使用浏览器检测是否能够访问Maven服务器的URL.
阿里云Maven镜像服务器URL: http://maven.aliyun.com/nexus/content/groups/public/,直接在浏览器打开看看吧。
第四步、添加Jar包(依赖组件)
这一步原文是这样写的↓ 我点了一下Rebuild Index,画面没有任何变化。
暂时忽略上面的操作,开始添加Jar包(依赖组件),打开pom.xml文件(工程最下方),原始的文件长这样:
注意这里有2个Tab:Dependencies 和 pom.xml。其实就是2个视图,可视化视图Wizard和源代码视图。Eclipse基本在可以可视化的地方都提供了这种便利。
点开Dependencies视图,点Add,把要添加的jar包名称输入,例如:dom4j
注:如果没有上一步的Rebuild Index,我输入了dom4j,Search Results框中也没有同时出现任何内容。
当Rebuild Index了大概20分钟后,下面的一切才顺利。在输入dom4j的同时,下面的结果框会实时反映出内容。
当然,如果你不想白白浪费20分钟,基于进入下一步,没问题。往下看。
如果不想等20分钟,可以这样:
打开pom.xml文件,点开源文件视图,把下面的代码copy到对应的位置保存即可:
<dependencies> <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> </dependencies>
位置↓
注:所以Rebuild Index,只是为了方便生成索引,在Dependencies可视化界面实时反映搜索结果用,并非必须。
只要镜像服务器的连接没断开,直接编辑pom.xml源代码,只要你没写错,一样可以引入Jar包。效果一样一样的!
在pom.xml文件被保存的瞬间,项目中多了一个Maven Dependencies的目录结构,里面清楚的写着jar包和Project已经关联起来了。
使用Maven关联的Jar包,保存在本地MAVEN仓库(默认)C:\\Users\\机器名\\.m2\\repository下。
如果你想修改本地Maven仓库的位置。在C:\\apache-maven-3.5.3\\conf\\settings.xml文件中使用<localRepository>D:\\Program Files\\mvn\\(例子)</localRepository>修改。
结束。
追加第五步、创建Maven Web项目
基本和上面一模一样,我生成了Web Project,生成了web.xml文件,Error也消除了:
追加第六步、如何添加Jar包的pom.xml源代码
访问http://maven.aliyun.com/nexus
在里面输入你希望引入的Jar包,例如commons-lang,在XML框中,copy这段代码,放入 pom.xml文件的合适位置,保存。多么方便~
好了,至此Maven的配置我们学完了。
四、终于开始学Jersey了
总结:为什么学习用Jersey创建RESTful WebService要先学Maven,到这一步其实我还没明白。
但是接下来几乎是电光火石,瞬间我就懂了。不啰嗦,看:
第一步、创建一个Maven Project(选择项目的Maven原型 jersey-quickstart-grizzly2,本例中用1.17版本)
这里不同了,一定不要选择“跳过原型选择“
在Filter中输入:jersey-quickstart-grizzly2,使用下面出现的原型创建项目
眨眼的功夫,生成了。
生成后的项目结构如下图,其中Main.java是grizzly web server启动的Java小应用程序,MyResource.java是自动生成第一个REST Resource类,包含了一个简单的GET请求的资源。
Main.java 右键→Run As:Java Application,先把服务启动(这里可没用Tomcat等WebService)
然后用 http://localhost:9998/application.wadl,访问这个WebService
接着我们试试REST方式:http://localhost:9998/myresource,当然没问题,看浏览器显示Got it!
就是这么快捷,你什么都没做,就生成了一个RESTful的WebService而且,里面的代码都是开源的,方便学习。
追加第二步、如果找不到Maven原型 jersey-quickstart-grizzly2怎么办?
用Add ArcheType,然后把从Maven(阿里云)上找到的3个参数填进去,OK。再找就有了。
在 http://maven.aliyun.com/nexus 上输入: jersey-quickstart-grizzly2,查找
还有个导入大量archetypes的方法:右键下载 maven 的 archetype xml, 然后导入 archetypes:
至此,快速创建一个基于Jersey框架的RESTful WebService的任务,完成!
以上是关于Eclipse + Jersey 发布RESTful WebService了解Jersey的主要内容,如果未能解决你的问题,请参考以下文章
是否可以定义一个与其实现分离的 jax-rs 服务接口(使用 eclipse 和 jersey)?
使用Eclipse和Payara服务器的Jersey REST应用程序找不到HTTP状态404
Jersey 3.0 没有选择 NameBinding 响应过滤器
Jersey com.sun.jersey.spi.container.servlet.ServletContainer 使用 MAVEN 时出错