spring boot ruoyi tomcat windows 部署war包

简介

这里以 ruoyi-vue-plus 5.0分支 后端前端为例 ,使用文档。 因为使用的是 jdk17,所以我们需要使用 tomcat10下载

注意事项

后端

注意 tomcat10以下部署没问题,tomcat10部署的时候需要在tomcat文件夹下新建 webapps-javaee 文件夹,将jar包放在这个文件夹里

部署参考

部署流程

  1. 前提:安装mysql、安装redis,安装存储服务minio linux 安装minio windoiws
  2. 安装tomcat
  3. 打包后端为 war包 上传到 tomcat,打开 ip:port/war包名 访问 ,有欢迎页面表示成功
  4. 打包前端 npm run build:prod 上传到 tomcat webapps\ROOT 下 修改 webapps\ROOT\WEB-INFweb.xml 文件
  5. 访问 ip:port 测试

tomcat配置

  1. server.xml 配置启动端口号
 <Connector port="8181" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
               maxParameterCount="1000"
               />
  1. 配置日志编码
    java.util.logging.ConsoleHandler.encoding = UTF-8 默认 UTF-8 打印乱码,我们改成 GBK
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter
java.util.logging.ConsoleHandler.encoding = GBK

后端

将打包方式改为 war 包, tomcat 只解析 war包格式。
在这里插入图片描述

  1. 使用idea 工具栏 celan package 或者 控制台执行命令打包 在ruoyi-admin\tagget 文件夹下 生成 ruoyi-amind.war, 然后我们将包名改为 prod-api.war, tomcat启动后会解析成 prod-api 文件夹,同时也是访问路径,跟前端一致
  2. 将war 包上传到tomcat webapps-javaee 文件夹下,这个文件夹不存在,手动创建,tomcat10 在这个文件夹下解析。
  3. 启动tomcat bin 目录下 startup.bat
    在这里插入图片描述
  4. 启动完成后访问 ip:port\prod-api 例如 localhost:8080\prod-api, 出现以下图示,表示成功,接下来我们部署前端
    在这里插入图片描述

前端部署

  1. 使用命令 npom run build:prod 打包前端 生成dist 文件夹,将文件夹内文件 复制到 webapps\ROOT 文件夹内
  2. 修改 webapps\ROOT\WEB-INFweb.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1" metadata-complete="true">
     <display-name>Router for Tomcat</display-name>
     <error-page>
        <error-code>404</error-code>
        <location>/index.html</location>
    </error-page>
</web-app>
  1. 访问 ‘ip:port’ 测试 是否部署成功 例如 ‘localhost:8080’

代码配置

设置servlet初始化,不配置的话 tomcat无法启动服务


public class ServletInitializer extends SpringBootServletInitializer
{
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
    {
        return application.sources(BootApplication.class);
    }
}

pom文件配置

无web.xml的spring boot 需要添加,不然打包失败
参考

<plugin>
  <artifactId>maven-war-plugin</artifactId>
    <version>2.6</version>
    <configuration>
        <!--如果想在没有web.xml文件的情况下构建WAR,请设置为false。-->
        <failOnMissingWebXml>false</failOnMissingWebXml>
    </configuration>
</plugin>

其他配置

修改tomcat日志打印编码

  1. 编辑 tomcat/conf 文件夹下 logging.properties 原来是UTF-8 修改为 GBK
java.util.logging.ConsoleHandler.encoding = GBK
  1. 端口号修改 tomcat/conf 文件夹下 server.xmlport 修改为你需要的端口号
  <Connector port="8181" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
  1. 以ruoyi项目为例 修改war包为访问路径,接口请求为 ip:port/prod-api
    将war包名称修改为 prod-api.war

前端

  1. 打包项目
npm run bulid:prod
  1. 将生成的 dist 文件夹 放到 tomcat/webapps 文件夹下

  2. dist 文件夹下新建 WEB-INF 文件夹 创建 web.xml 文件, 内容如下

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
        http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
        version="3.1" metadata-complete="true">
     <display-name>Router for Tomcat</display-name>
     <error-page>
        <error-code>404</error-code>
        <location>/index.html</location>
    </error-page>
</web-app>
  1. 修改server.xml
    Host节点添加 一下内容
<Context path="/" docBase="dist的绝对路径(也可以写相对于webapps的路径)" reloadable="true" crossContext="true"></Context>

测试

启动tomcat/bin 下的 startup.bat,如果看到spring 的log 表示项目加载成功

访问ip:port 看跳转

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值