博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用Tomcat发布基于Maven所构建的Jersey RESTful Web Service
阅读量:6760 次
发布时间:2019-06-26

本文共 2827 字,大约阅读时间需要 9 分钟。

一、关于RESTful架构

REST这词是Roy Thomas Fielding在他2000年的博士论文中提出的。他利用REST定义了互联网软件的架构原则,即Representational State Transfer缩写,直译过来就是“表现层状态转化”,如果一个架构符合REST原则,就称它为RESTful架构。REST所指向的是在互联网中资源属性,其指明的是“Resources”的表现层,即概括成就是可以利用REST原则构建API能够找到独一无二的“资源实体”,如图片、音频、特定的数据等。简单概述RESTful架构有以下几个重点:

1.每一个URI代表一种资源;2.客户端和服务器之间,传递这种资源的某种表现层;3.客户端通过四个HTTP动词(GET、POST、PUT、DELETE)对服务器端资源进行操作,实现“表现层状态转化”。具体的可以看构建实现的例子。

二、关于Jersey、Maven

Jersey是JAX-RS(The Java API for RESTful Web Service)标准的参考实现,是Java领域中最纯正的REST服务开发框架。

Apache Maven是一款软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从中央信息管理项目的构建,报告和文档。

三、具体实践

1.依赖环境JDK、Maven、Tomcat

安装JDK和Maven时候需要注意的配置环境变量的问题,这其中需要注意的是下载的Maven和Tomcat都是需要时Binary 包,这样就可以直接解压后就可以直接运行无需编译:

1.1.mac环境下:

可以利用vim ~/.bash_profile来配置JDK和Maven的环境变量PATH,配置完成后执行source ~./bash_profile来让配置文件生效

#JDKJAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/HomePATH=$JAVA_HOME/bin:$PATH:.CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.export JAVA_HOMEexport PATHexport CLASSPATH#Mavenexport M2_HOME=/Users/bing/apache-maven-3.5.22export PATH=$PATH:$M2_HOME/bin

验证是否配置好,可以在terminal上面输入mvn -v命令看,系统是否识别如下图:

clipboard.png

1.2.Windows环境下:可以通过高级系统设置来配置环境变量

2.利用mvn命令来创建webapp的例子(以mac环境下为例)

sudo mvn archetype:generate -DarchetypeArtifactId=jersey-quickstart-webapp \                -DarchetypeGroupId=org.glassfish.jersey.archetypes -DinteractiveMode=false \                -DgroupId=com.example -DartifactId=simple-service-webapp -Dpackage=com.example \                -DarchetypeVersion=2.26

clipboard.png

cd simple-service-webappsudo mvn clean package

clipboard.png

这样就已经把刚才构建基于maven所构建的Jersey RESTful Web Service的war就已经同mvn构建好了
如下图
clipboard.png

3.启动Tomcat来发布此Web Service项目

在Apache Tomcat下载Binary的包后,通过Terminal终端进入Tomcat的bin目录下

bash startup.sh

clipboard.png

如此便是已经将web service部署到了Tomcat中了,并且已经发布了
这样就可以通过URI来访问我们的项目资源,如在原来的项目中所需要留意的两个地方是,第一个是webapp文件夹下web.xml,如下图
clipboard.png

Jersey Web Application
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
com.example
1
Jersey Web Application
/webapi/*

其中的<url-pattern>/webapi/*</url-pattern>中webapi就是访问路径一个名字,

第二个是项目中具体的java类所定义接口的中path路径,在此项目中就是MyResource.java

@Path("myresource")public class MyResource {    /**     * Method handling HTTP GET requests. The returned object will be sent     * to the client as "text/plain" media type.     *     * @return String that will be returned as a text/plain response.     */    @GET    @Produces(MediaType.TEXT_PLAIN)    public String getIt() {        return "Got it!";    }}

所以上手的样例所要访问的URI是:

:8080/simple-service-webapp/webapi/myresource/

clipboard.png

这样就可以开始项目具体业务的开发了。


后续会继续完善Windows和Linux版本的环境的搭建,以及基于Docker容器项目部署。

转载地址:http://jmbeo.baihongyu.com/

你可能感兴趣的文章
71. Simplify Path
查看>>
什么是SAP GUI的client
查看>>
深入call apply bind
查看>>
导航栏切换—云南旅游相册
查看>>
关于神经网络的需要注意的概念总结
查看>>
2018年总结
查看>>
containerd发布了CRI修复程序和CVE-2019-5736更新的runc
查看>>
关于vue父子组件之间事件触发及数据传递问题
查看>>
GraphQL:了解Spring Data JPA / SpringBoot
查看>>
每隔1s打印0-5
查看>>
在安卓手机中rem单位border-radius:50%画圆变形的解决方案
查看>>
前端在h5页面调起微信支付接口和支付宝接口(日常笔记)
查看>>
Bundler 2.0 发布
查看>>
自动化部署工具Syncd v1.1.0发布,提供二进制安装包
查看>>
一位老码农的分享:一线程序员该如何面对「中年危机」?
查看>>
关于ES6深度拷贝
查看>>
财会小白的办公室自救指南
查看>>
Java核心技术笔记 接口、lambda表达式与内部类
查看>>
Docker 验证 Centos7.2 离线安装 Docker 环境
查看>>
【译】你可能不需要派生状态
查看>>