资讯专栏INFORMATION COLUMN

利用Tomcat发布基于Maven所构建的Jersey RESTful Web Service

tianhang / 2534人阅读

摘要:一关于架构这词是在他年的博士论文中提出的。具体的可以看构建实现的例子。基于项目对象模型的概念,可以从中央信息管理项目的构建,报告和文档。后续会继续完善和版本的环境的搭建,以及基于容器项目部署。

一、关于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来让配置文件生效

#JDK
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_162.jdk/Contents/Home
PATH=$JAVA_HOME/bin:$PATH:.
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.
export JAVA_HOME
export PATH
export CLASSPATH
#Maven
export M2_HOME=/Users/bing/apache-maven-3.5.22
export PATH=$PATH:$M2_HOME/bin

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

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

cd simple-service-webapp
sudo mvn clean package


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

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

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

bash startup.sh


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




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

其中的/webapi/*中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是:
http://localhost:8080/simple-service-webapp/webapi/myresource/

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

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71170.html

相关文章

  • JAX-RS 2.0 中 REST 四种服务类型

    摘要:当不存在子类,也不存在子类时,规范中定义,在这种情况下,为服务动态生成一个名为的实例,并自动探测匹配资源。其中是中的基类,它继承于情况二当不存在子类,但是存在子类时。以上就是规范中定义的四种服务的方式。 最近在学习 jersey 框架。他是 目前比较流行的 基于 JAX-RS 2.0 规范实现的 RESTful 框架。 我是跟着 《Java RESTful Web Service 实...

    bbbbbb 评论0 收藏0
  • SpringBoot整合Jersey2.x实现文件上传API

    摘要:的官方文档中将调用的入口称作,而在的示例代码中将其命名为,其实指的是同一个东西。其次是类至此,一个文件上传的服务端接口已经编写完成。 前言 SpringBoot的官方文档中关于Jersey的介绍并不是很全面: 27.3 JAX-RS and Jersey,SpringBoot-Sample项目里面也只有非常基础的代码,对于一些复杂的常用需求,这个文档给不了任何帮助。 为了使用Jerse...

    andot 评论0 收藏0
  • 国外程序员整理Java资源大全

    摘要:日期和时间处理日期和时间的函数库。使用中可观察序列,创建异步基于事件应用程序的函数库。为分布式系统提供延迟和容错处理。发布使用本机格式分发应用程序的工具。将程序资源和打包成和的本机文件。图像处理用来帮助创建评估或操作图形的函数库。 好资源要分享原文 译者 唐尤华 翻译自 github akullpp 构建 这里搜集了用来构建应用程序的工具。 Apache Maven:Mave...

    chengtao1633 评论0 收藏0
  • Spring Boot QuickStart (1)

    摘要:开始介绍简化了基于的应用开发,你只需要就能创建一个独立的,产品级别的应用。该包含很多搭建,快速运行项目所需的依赖,并提供一致的,可管理传递性的依赖集。日志级别通过标识开启控制台级别日志记录,也可以在中指定日志级别配置示例 开始 介绍 Spring Boot 简化了基于 Spring 的应用开发,你只需要 run 就能创建一个独立的,产品级别的 Spring 应用。 Spring 平台...

    klinson 评论0 收藏0
  • Spring Boot 参考指南(构建系统)

    摘要:构建系统强烈建议你选择一个支持依赖管理的构建系统,并且可以使用发布到中心存储库的工件。例如,要升级到另一个,你可以将以下元素添加到你的在前面的示例中,我们指定了一个,但是任何依赖类型都可以以相同的方式被覆盖。 13. 构建系统 强烈建议你选择一个支持依赖管理的构建系统,并且可以使用发布到Maven中心存储库的工件。我们建议你选择Maven或Gradle,可以让Spring Boot与其...

    thursday 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<