SpringBoot打war包并配置外部Tomcat运行

news2024/11/19 17:35:42

简介

由于其他原因,我们需要使用SpringBoot打成war包放在外部的Tomcat中运行,本文就以一个案例来说明从SpringBoot打war包到Tomcat配置并运行的全流程经过

环境

SpringBoot 2.6.15

Tomcat 8.5.100

JDK 1.8.0_281

Windows

正文

一、SpringBoot配置打war包

第一步:在Application启动入口同级目录下新增一个继承了Servlet初始化器的类,文中是圈红的ServletInitializer

 

第二步:在使用Maven构建应用程序时要在插件内排除 spring-boot-starter-web 内置的Tomcat依赖

第三步:显示声明packaging为war

至此,我们在使用Maven命令打包时即可打出war包

二、配置Tomcat

第一步:解决控制台乱码,在以下路径中找到 logging.properties 文件更新

apache-tomcat-8.5.100\conf

java.util.logging.ConsoleHandler.encoding = GBK

说明:因为CMD命令窗口默认的字符集是GBK而Tomcat中的日志配置文件(logging.properties)中的编码是UTF-8,因此当运行startup.bat时,控制台将输出乱码 

第二步:让Tomcat以指定的JDK运行

好处是不必安装JDK了,直接复制安装好的JDK到Tomcat中就可以和Tomcat一体了

1、先将准备好的JDK复制一份到Tomcat文件夹下

2、打开startup.bat配置JDK

:指定jdk版本,注意=前后不能有空格
set JAVA_HOME=D:\dev\apache-tomcat-8.5.100\jdk1.8.0_281
set JRE_HOME=D:\dev\apache-tomcat-8.5.100\jdk1.8.0_281\jre

 3、配置项目上下文路径(访问项目前缀)

说明:我们的war包放在了Tomcat的webapps目录下,默认访问项目的路径要加上包名,比如我的war包是vote.war,我访问项目的时候就是 ${ip}:${port}/vote/${requestMapping}

但,我不想要前缀也可以访问,那就要配置,本文只提供更改server.xml的方式配置

apache-tomcat-8.5.100\conf

在上面的路径中找到 server.xml 文件,在Host标签中加入Context标签

至此,Tomcat也配置好了,下面运行测试

如果你也想在执行startup.bat时显示我上面那个窗体的配置信息可以直接在startup.bat最下方加入pause即可

pause;

圆满成功 

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

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

相关文章

echarts 图表不显示的问题

是这样的,点击详情,再点击统计,切换的时候就不会显示echarts图表,刚开始使用的是next Tick,没有使用定时器,后来加上了定时器就实现了如下所示: 代码是如下 const chartContainer ref(null); …

开发一个SDK(starter)

1.创建项目 将pom.xml中build删除掉

pikachu靶场(unsafe upfileupload(文件上传)通关教程)

目录 client check 1.在桌面新建一个文本文档 2.保存为.png格式 3.打开网站 4.按照图中操作 5.点击forward 6.访问 MIME type 1.新建一个php文件,里面写上 2.上传文件,就是我们保存的文件 3.打开抓包工具,点击开始上传 4.修改Conen…

服务器主板电池

一、什么是服务器纽扣电池? 服务器纽扣电池,也叫CMOS电池,是一种非常小型的电池,通常与服务器主板上的CMOS芯片相结合,用于储存BIOS设置、时钟和其他关键系统信息。这种电池的体积通常比一枚硬币还小,而且…

RT-DETR:端到端的实时Transformer检测模型(目标检测+跟踪)

博主一直一来做的都是基于Transformer的目标检测领域,相较于基于卷积的目标检测方法,如YOLO等,其检测速度一直为人诟病。 终于,RT-DETR横空出世,在取得高精度的同时,检测速度也大幅提升。 那么RT-DETR是如…

数据库(13)——DQL分组查询

语法 SELECT 字段列表 FROM 表名 [WHERE 条件] GROUP BY 分组字段名 [HAVING 分组后过滤条件] 示例 原始表: 根据性别分组并统计人数 select sex,count(*) from information group by sex; 根据性别分组,并求年龄的平均值:

2024抖音流量认知课:掌握流量底层逻辑,明白应该选择什么赛道 (43节课)

课程下载:https://download.csdn.net/download/m0_66047725/89360865 更多资源下载:关注我。 课程目录 01序言:拍前请看.mp4 02抖音建模逻辑1.mp4 03抖音标签逻辑2.mp4 04抖音推流逻辑3.mp4 05抖音起号逻辑4.mp4 06养号的意义.mp4 0…

Java | Leetcode Java题解之第123题买卖股票的最佳时机III

题目&#xff1a; 题解&#xff1a; class Solution {public int maxProfit(int[] prices) {int n prices.length;int buy1 -prices[0], sell1 0;int buy2 -prices[0], sell2 0;for (int i 1; i < n; i) {buy1 Math.max(buy1, -prices[i]);sell1 Math.max(sell1, b…

Bean作用域和生产周期已经Bean的线程安全问题

bean 的作用域 单例(Singletion) : Spring 容器中只有一个 bean &#xff0c;这个 bean 在整个应用程序内共享。 原话(Prototype) : 每次 getBean()&#xff0c; 都是不同的bean&#xff0c;都会创建一个实例。 请求(Request)&#xff1a;每个HTTP请求都会创建一个新的 Bean …

开发者工具-sources(源代码选项)

一、概要说明 源代码面板从视觉效果上分为三个区域&#xff1a;菜单区、内容区、监听区。 菜单区里面有5个子分类&#xff1a; 网页(Page)&#xff1a;指页面源&#xff0c;包含了该页面中所有的文件&#xff0c;即使多个域名下的文件也都会展示出来&#xff0c;包括iframe…

束测后台实操文档2-OpenWrt

束测后台实操文档1-PVE、PBS 上面文&#xff0c;把proxmox装好并添加好PBS上的镜像存储空间后&#xff0c;还原已经做好的镜像基本上就可以在已有的镜像下开展工作了。 调试的PVE环境一般两个网口&#xff0c;一个外网wan&#xff0c;一个子网lan&#xff0c;虚拟机一般在lan…

【redis】宝塔,线上环境报Redis error: ERR unknown command del 错误

两种方式&#xff1a; 1.打开宝塔上的redis&#xff0c;通过配置文件修改权限&#xff0c;注释&#xff1a;#rename-command DEL “” 2.打开服务器&#xff0c;宝塔中默认redis安装位置是&#xff1a;cd /www/server/redis 找到redis.conf,拉到最后&#xff0c;注释#rename-co…

大语言模型技术系列讲解:大模型应用了哪些技术

为了弄懂大语言模型原理和技术细节&#xff0c;笔者计划展开系列学习&#xff0c;并将所学内容从简单到复杂的过程给大家做分享&#xff0c;希望能够体系化的认识大模型技术的内涵。本篇文章作为第一讲&#xff0c;先列出大模型使用到了哪些技术&#xff0c;目的在于对大模型使…

C++设计模式-策略模式

文章目录 27. 策略模式 运行在VS2022&#xff0c;x86&#xff0c;Debug下。 27. 策略模式 策略模式让算法的选择与使用独立开来&#xff0c;使得代码更灵活、可扩展和易维护。应用&#xff1a;如在游戏开发中&#xff0c;AI角色需要根据环境和条件做出不同的行为&#xff0c;如…

基于云服务器使用DreamBooth训练主体

资源整理 参考教程&#xff1a;StableDiffusion/NAI DreamBooth自训练全教程 - 知乎 (zhihu.com) 云服务器平台&#xff1a;AutoDL算力云 | 弹性、好用、省钱。租GPU就上AutoDL 镜像链接&#xff1a;CrazyBoyM/dreambooth-for-diffusion/dreambooth-for-diffusion、 代码仓…

使用Python操作Git

大家好&#xff0c;当谈及版本控制系统时&#xff0c;Git是最为广泛使用的一种&#xff0c;而Python作为一门多用途的编程语言&#xff0c;在处理Git仓库时也展现了其强大的能力。通过Python&#xff0c;我们可以轻松地与Git仓库进行交互&#xff0c;执行各种操作&#xff0c;从…

为参数设置默认值

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 调用函数时&#xff0c;如果没有指定某个参数将抛出异常&#xff0c;为了解决这个问题&#xff0c;我们可以为参数设置默认值&#xff0c;即在定义函…

Blueprints - Collision Presets相关

一些以前的学习笔记归档&#xff1b; 在Static Mesh或SkeletalMesh等的属性中&#xff0c;都有Collision Presets&#xff1a; 其中Oject Type只是一个枚举参数&#xff0c;代表设置该Actor为什么类型&#xff0c;Collision Responses代表该Actor对各种类型的Actor有什么反应&a…

MYSQL四大操作——查!查!查!

目录 简洁版&#xff1a; 详解版&#xff1a; SQL通用语法&#xff1a; 分类&#xff1a; 1. DDL —库 1.1 查询&#xff1a; 1.2 创建&#xff1a; 1.3 删除 1.4 使用库 2. DDL—表 2.1 查询 2.1.1 查询当前库的所有表&#xff1a; 2.1.2 查询表结构 &#xff1a; 2.1.…

408数据结构-图的存储与基本操作 自学知识点整理

前置知识&#xff1a;图的基本概念 图的存储必须完整、准确地反映顶点集和边集的信息。根据不同图的结构和算法&#xff0c;采用不同的存储方式将对程序的效率产生相当大的影响&#xff0c;因此选取的存储结构应适合于待求解的问题。 图的存储 邻接矩阵法 所谓邻接矩阵存储&a…