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


    简介

    由于其他原因,我们需要使用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

    1. :指定jdk版本,注意=前后不能有空格
    2. set JAVA_HOME=D:\dev\apache-tomcat-8.5.100\jdk1.8.0_281
    3. 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;

    2024.06.03补充:如果你发现配置了startup.bat没有起到作用,而是报 

    1. The JRE_HOME environment variable is not defined correctly
    2. JRE_HOME=../jdk1.8.0_281/jre
    3. This environment variable is needed to run this program

    那么你尝试将startup.bat中的配置移入到下图中

    再次启动即可成功 

    成功 

  • 相关阅读:
    图像的几何变换(缩放、平移、旋转)
    Golang获取所有环境变量
    C语言:数组指针
    【记录】使用Python读取Tiff图像的几种方法
    极几何,本质矩阵,基础矩阵,单应矩阵
    互联网知识变现,不起眼利润高的冷门行业有哪些?
    【校招VIP】数据库理论之数据库范式
    智慧社区:物联网应用解决方案
    11 月亚马逊云科技培训与认证课程,精彩不容错过!
    【关系抽取】基于Bert的信息抽取模型CasRel
  • 原文地址:https://blog.csdn.net/cm777/article/details/139363691