将springboot项目打包成war,并且部署到tomcat。比较麻烦,自己踩的坑也比较多。算了一下,找bug的时间,有两天熬到凌晨2点。

修改pom.xml使得打包成war

<groupId>com.yanzhen</groupId>
<artifactId>dormitory</artifactId>
<version>0.0.1-SNAPSHOT</version>
<description>Demo project for Spring Boot</description>
<packaging>war</packaging> <!--更改这里-->

修改pom.xml排除内置的Tomcat(不然报错404)

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--添加以下部分-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>

添加tomcat启动器

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>

在build配置项目的打包名

<build>
<finalName>dormitory</finalName>
</build>

打包之后的项目名就是dormitory

修改启动类

继承自SpringBootServletInitializer并重写SpringApplicationBuilder方法

@SpringBootApplication
@MapperScan({"com.dj.mapper"})//配置到mapper
public class DormitoryApplication extends SpringBootServletInitializer { public static void main(String[] args) {
SpringApplication.run(DormitoryApplication.class, args);
} @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DormitoryApplication.class);
}
}

maven打包

先执行maven clean ,再执行maven package,那么就会在target目录下生成了dormitory.war

部署到tomcat

dormitory.war放入tomcat中的webapps

启动tomcat

在windows中运行,linux类似

cd bin
startup.bat

启动成功之后,会发现生成了一个dormitory的文件夹,项目也运行起来了。

测试

测试注意点(一定要看)

由于不使用Spring Boot 自带的Tomcat,所以在application中配置服务器server是无效的。

如果需要修改端口port,修改tomcat的端口,即这边设置的端口也不会生效,会使用tomcat的默认端口。]

tomcat修改默认端口:https://www.cnblogs.com/wzstudy/p/10690656.html

如果部署到云服务器需要开放两边的端口,宝塔和服务器的

如果需要context-path,需要在前面设置build的打包名改成context-path的值(打包名就不用/)

<build>
<finalName>dormitory</finalName>
<build>

如果你没有设置context-path,你想要访问的效果是http://localhost:8080/login,那么你就需要将打包名改成ROOT

<build>
<finalName>ROOT</finalName>
<build>

这样项目就会直接编译到原本ROOT文件中

参考链接

部署springboot项目到云服务器的两种方式(jar+war)

SpringBoot项目部署(war包,jar包)

SpringBoot部署 –war方式

修改tomcat默认端口

springboot项目部署(war包)的更多相关文章

  1. springboot项目打war包发布到外置tomcat

    第一步:修改pom.xml 1. <version>0.0.1-SNAPSHOT</version> <packaging>war</packaging> ...

  2. SpringBoot项目打war包部署Tomcat教程

    一.简介 正常来说SpringBoot项目就直接用jar包来启动,使用它内部的tomcat实现微服务,但有些时候可能有部署到外部tomcat的需求,本教程就讲解一下如何操作 二.修改pom.xml 将 ...

  3. SpringBoot 项目打war包 tomcat部署

    今天看了一下springboot的项目,个人习惯是接触新的语言或框架,首先要做的就是程序员届最常用的“Hello World”,然后进行项目部署,然今天部署却发现一直都是404,查看tomcat的we ...

  4. Springboot项目打成war包,部署到tomcat上,正常启动访问报错404

    前言: 项目介绍,此项目是一个Maven多模块项目,模块项目:all(父模块):util (公用的工具类):dao(实体类.业务类.mapper.mapper.xml):business(业务serv ...

  5. springBoot项目打war包部署到tomcat上

    1 首先得在本地跑通. 2 处理启动类Application @SpringBootApplication public class Application extends SpringBootSer ...

  6. springboot项目打war包部署到服务器(eclipse & gradle环境)

    1.右键项目run as  -> run configurations,打开Run configurations弹出框 2.右键Gradle Project -> New Configur ...

  7. springboot项目打war包流程

    目前,前后端分离的架构已成主流,因此使用springboot构建应用是非常快速的,项目发布到服务器上的时候,只需要打成一个jar包,然后通过命令 : java -jar jar包名称即可启动服务了:但 ...

  8. SpringBoot 项目 部署 war方式

    SpringBoot部署 –war方式 步骤1部署方式 Springboot 和我们之前学习的web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢? 通常来说,Springbo ...

  9. springboot项目打成war包

    在某种情况下,比如..........之下,我们不得不,将springboot打成war包 1.在pom.xml文件中修改 <packaging>war</packaging> ...

  10. springboot项目打war包pom设置

    <build> <finalName>PayManager</finalName><!--打包后的名字PayManager.war--> <plu ...

随机推荐

  1. Fcitx5 上线 FreeBSD

    Fcitx5 上线 FreeBSD textproc/fcitx5textproc/fcitx5-qttextproc/fcitx5-gtktextproc/fcitx5-configtoolchin ...

  2. Android R 新特性分析及适配指南

    Android R(Android 11 API 30)于2020年9月9日正式发布,随国内各终端厂商在售Android设备的版本更新升级,应用软件对Android R 版本的兼容适配已迫在眉睫. 对 ...

  3. webpack4.x 从零开始配置vue 项目(二)基础搭建loader 配置 css、scss

    序 上一篇已经把基本架子搭起来了,现在来增加css.scss.自动生成html.css 提取等方面的打包.webpack 默认只能处理js模块,所以其他文件类型需要做下转换,而loader 恰恰是做这 ...

  4. ASP.NET跨域访问解决

    第一种: step1:添加引用(搜索CORS) step2: App_Start/WebApiConfig.cs中添加配置 step3: 在控制器中添加特性 第二种: 在App_Start/WebAp ...

  5. Error message: Failed to spawn: unable to access process with pid 413 due to system restrictions; try `sudo sysctl kernel.yama.ptrace_scope=0`, or run Frida as root

    Android 8.0 在frida中使用 -f 参数报错, Error message: Failed to spawn: unable to access process with pid 413 ...

  6. C语言之漫谈指针(下)

    C语言之漫谈指针(下) 在上节我们讲到了一些关于指针的基础知识: 详见:C语言之漫谈指针(上) 本节大纲: 零.小tips 一.字符指针 二.指针数组与数组指针 三.数组传参与指针传参 四.函数指针及 ...

  7. TCP/IP协议的经典面试知识点总结

    前言 大家好啊,我是汤小圆. 今天给大家推荐的是,TCP/IP协议的经典面试知识点总结,希望对大家有帮助,谢谢. 简介 我们平时经常听到的TCP/IP协议,其实是一个协议族: 只不过因为TCP.IP是 ...

  8. 003-Java中的变量和数据类型

    @ 目录 一.变量 1.什么变量 2.变量的三要素 3.变量的命名规范 4.变量的分类 5.变量的作用域 6.变量的注意事项 二.数据类型 1.什么是数据类型 2.数据类型有什么用 3.数据类型的分类 ...

  9. java例题_11 求不重复数

    1 /*11 [程序 11 求不重复数字] 2 题目:有 1.2.3.4 这四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 3 程序分析:可填在百位.十位.个位的数字都是 1.2.3. ...

  10. 干货!Apache Hudi如何智能处理小文件问题

    1. 引入 Apache Hudi是一个流行的开源的数据湖框架,Hudi提供的一个非常重要的特性是自动管理文件大小,而不用用户干预.大量的小文件将会导致很差的查询分析性能,因为查询引擎执行查询时需要进 ...