将SpringBOOT项目 打成 war 包 并 部署到 Tomcat

news2024/11/16 11:54:50

当前环境:Windows

Tomcat版本:tomcat8.5

SpringBoot版本: 2.2.3

1. pom.xml 修改打包方式

    <packaging>war</packaging>

2.加入SpringBoot打包插件(pom.xml)

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

3. 在打包插件中加入配置SpringBoot的入口类的标签名

   <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!--配置springboot入口类-->
                <configuration>
                    <fork>true</fork>
                    <jvmArguments>Dfile.encoding=UTF-8</jvmArguments>
                    <!--配置入口类的标签名-->
                    <mainClass>com.Application</mainClass>
                </configuration>
            </plugin>
        </plugins>
    </build>

4.依赖的修改(pom.xml)

因为打war在tomcat部署,我们需要将内嵌的tomcat去掉,加入你的springboot有jsp文件的话还要将tomcat解析jsp的依赖去掉。

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--打包不参与-->
        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <scope>provided</scope>
        </dependency>
        <!--打包不参与,也就是打包去掉tomcat-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

<scope>provided</scope> : 这个scope的意思在当前环境可以使用,但是不参与打包!!!

5. 修改主配置类(用于依赖外部tomcat)

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override  //这个表示使用外部的tomcat容器
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        // 注意这里要指向原先用main方法执行的启动类
        return builder.sources(Application.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

6. 测试war包

将war包放入tomcat下的webapps下面,我们启动tomcat:

7. 启动tomcat

 注意:war包部署的时候,tomcat默认将你的路径变成你的war的路径。

访问我们的测试接口

 成功

注意:war部署的时候 tomcat默认将你的根路径变成你的war包的名称

例如 你的war是 test.war
那么部署的时候访问接口必须是
http://localhost:8080/test/

8.tomcat访问配置

直接打包,上传到服务器的tomcat的webapps下,启动后自动会解压,这里需要注意的一点就是需要修改tomcat配置文件server.xml,添加如下内容:

<Context path="/" docBase="redis_tools-1.0-SNAPSHOT" debug="0" privileged="true"/>

注:redis_tools-1.0-SNAPSHOT设置为包名即可,其他的地方都无需修改,启动后访问:
http://127.0.0.1:8080/redis_tools-1.0-SNAPSHOT

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

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

相关文章

Jmeter的使用说明

一、安装Jmeter工具 链接&#xff1a;https://pan.baidu.com/s/1ZYc15eq9DO-r0ChKHxMXlg?pwdckcd 提取码&#xff1a;ckcd --来自百度网盘超级会员V5的分享二、Jmeter的常用元器件说明 jmeter八大元件件&#xff1a;取样器&#xff0c;前置处理器&#xff0c;后置处理器&a…

计算机网络——第六章笔记(1)

传输层 传输层是层是整个协议栈(TCP/IP)的核心。 任务&#xff1a;是提供可靠的、高效的数据传输。 面向连接的服务 1、端到端的连接管理 建立连接 数据传输 释放连接 2、流控制 3、差错控制 传输环境&#xff1a;通信子网、物理信道。 传输服务和网络服务的两个主…

网络了解编程五层协议

一:了解 1.了解一下网络: 局域网(LAN),一个上课的机房,多个连在同一个路由器上的设备,就是在一个局域网中---打游戏 (局域网内的主机之间能方便的进行网络通信&#xff0c;又称为内网&#xff1b;局域网和局域网之间在没有连接的情况下&#xff0c;是无法通信的) 广域网(WAN) ,…

无线 LAN 服务概述

无线 LAN 服务是 Windows Server 2008 R2 和 Windows Server 2008 中的一项功能&#xff0c;可用于启用无线 WLAN 自动配置服务&#xff0c;以及配置 WLAN 自动配置以自动启动。一旦启用后&#xff0c;WLAN 自动配置会动态选择计算机将自动连接的无线网络&#xff0c;并配置无线…

项目管理的四大模型,PM必懂的事半功倍模型!

瀑布模型、迭代模型、增量模型、原型模型&#xff0c;是项目管理常见的四种模型。每种模型都有其优缺点和适用的项目类型。项目经理针对不同的项目用对模型&#xff0c;才能起到事半功倍的作用。 今天就讲讲这四种模型及其优缺点&#xff1a; 如果你需要项目管理相关资料可拉…

代码质量与安全 | “吃狗粮”能够影响到代码质量?来了解一下!

“dogfooding”是什么&#xff1f;乍一看&#xff0c;这就是“吃狗粮”的意思&#xff0c;但其实这来源于一句俚语&#xff1a;“Eat your own dog food”&#xff0c;直译过来就是“吃自己的狗粮”&#xff0c;常用于描述公司使用自己产品的这一种情况。 “吃自己的狗粮”实践…

(更新中)【后端入门到入土!】Java+Servlet+JDBC+SSM+SpringBoot+SpringCloud 基础入门

目录 第一部分&#xff1a;Java 基础语法&#xff08;已完结&#xff09; 第二部分&#xff1a;Java 高级&#xff08;已完结&#xff09; 第三部分&#xff1a;Servlet&#xff08;待更新……&#xff09; 第四部分&#xff1a;JDBC&#xff08;待更新……&#xff09; 第…

如何搭建一套指标体系?

一、引言 (1)为什么指标体系这么重要? (2)什么是指标体系? (3)指标体系的衡量标准是什么? (4)如何去搭建一套好好的指标体系? 只要弄清楚了这4个问题,指标体系的搭建工作就迅速地开展、快速地落地,精准地产生业务价值。以上是对于数据同学而言的工作。此外,对于…

漏洞练习环境搭建笔记

Docker 安装&#xff08;ubuntu&#xff09; 1.常归删除操作 sudo apt-get autoremove docker docker-ce docker-engine docker.io containerd runc 2. 删除docker其他没有没有卸载 dpkg -l | grep docker dpkg -l |grep ^rc|awk ‘{print $2}’ |sudo xargs dpkg -P # 删除无…

雷神MixBook Air笔记本系统故障怎么重装?

雷神MixBook Air笔记本系统故障怎么重装&#xff1f;有用户使用的雷神MixBook Air笔记本系统出现了故障&#xff0c;导致无法正常的使用电脑了。这个情况我们可以使用U盘来重装一个系统&#xff0c;恢复正常的使用。那么具体要怎么去进行操作&#xff0c;看看具体的方法吧。 准…

python多维数组切片

1、数组a第0个元素&#xff08;二维数组&#xff09;下的所有子元素&#xff08;一维数组&#xff09;的第一列 import numpy as np bnp.arange(24) ab.reshape(2,3,4) print a print a[0,:,0] 2、取所有二维数组下的每个二维数组的第0个元素&#xff08;一维数组&#xff09; …

会计部门通过数字化工作流程提高生产力

会计部门通过数字化工作流程提高生产力 基于纸张的会计流程令人担忧&#xff0c;在一些企业中&#xff0c;基于纸张的会计流程正在削弱企业的竞争力。 现在&#xff0c;企业高管们比以往任何时候都更想知道哪些技术在数字业务战略中作用最大&#xff0c;在简化会计流程方面&…

机器学习模型评价指标

前文&#xff1a;https://www.cnblogs.com/odesey/p/16902836.html 如果图不能加载&#xff0c;请查看原文&#xff1a;https://www.cnblogs.com/odesey/p/16907351.html 介绍了混淆矩阵。本文旨在说明其他机器学习模型的评价指标。 1. 准确率&#xff08;Accuracy-Acc&#xf…

企业新闻媒体资源有哪些类型?从哪里找?

互联网时代&#xff0c;人们获取信息的来源主要就是网络。企业想要将自己的品牌或是产品推广出去&#xff0c;互联网宣传是很重要的步骤。 企业新闻媒体发稿推广是打响品牌知名度、做好全网营销的第一步。新闻媒体宣传不仅仅性价比很高&#xff0c;同时持续时间长&#xff0c;…

细说智能家居新标准-Matter,蓝牙在智能家居中发挥的作用

Matter是在连通性标准联盟(CSA&#xff09;下开发的互操作性协议。其联盟成员包括最大的智能家居技术制造商&#xff0c;如Amazon、Apple、Google、Samsung和其他400多家企业。Matter的通用性和开放性使物联网设备能够安全地连接和交互&#xff0c;无论制造商。例如&#xff0c…

Linux终端上传、下载文件命令 lrzsz

一、什么是lrzsz&#xff1f; lrzsz是一款在linux里可代替ftp上传和下载的程序。 二、为什么要用它&#xff1f; 一般来说我们自然是用不着的&#xff0c;上传下载ftp工具都很方便&#xff0c;前提是你账户拥有最高权限&#xff0c;但如果你不是ROOT&#xff0c;做创建删除上传…

使用 ISAR 数据库提供离线 Flutter 支持

使用 ISAR 数据库提供离线 Flutter 支持 译文 https://medium.com/tkarmakar27112000/flutter-offline-support-using-isar-database-b79f5006d3a 前言 这是我的口头禅&#xff0c;我试图遵循我的 应用 application 。对于那些针对二三线城市的面向客户的应用程序&#xff0c;应…

Model Fusion via Optimal Transport论文阅读+代码解析

论文地址点这里 一. 论文基本介绍 最近2023ICLR中的一篇论文被曝抄袭一事&#xff0c;而进行举报的作者就是本次要将的论文的作者之一&#xff0c;可以发现本篇论文的工作是非常不错的。本篇论文也是第一个从最优运输地角度考虑模型之间地融合技术&#xff0c;通过排列神经元…

Snort搭建以及规则编写

目录 Snort IDS Snort搭建 安装web服务&#xff0c;方便设置sonrt后期访问 Mysql安装 PHP安装 安装 Snort Snort配置 创建snort专用的用户和组 配置目录 配置规则 修改配置文件 规则编写 Snort IDS Snort IDS&#xff08;入侵检测系统&#xff09;是一个强大的网…

Airtest自定义启动器支持批量运行脚本,并兼容在AirtestIDE中使用

小编注&#xff1a;上期详细讲了Airtest启动器的原理&#xff0c;以及在最后给出了2个实现方案。本次是第2个方案的另一个实现案例&#xff0c;供大家学习参考。 Python v3.7.0 / Airtest: 1.1.1 / PocoUI: 1.0.78 自定义的启动器主要实现了以下功能&#xff1a; 将一些公共…