将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. Android的Proxy/Delegate Application框架

    转自:http://blogs.360.cn/360mobile/2013/11/25/proxydelegate-application/#comment-77 有的时候,为了实现一些特殊需求,如界 ...

  2. P2142_高精度减法(JAVA语言)

    思路:BigInteger double kill! //四行搞定 题目描述 高精度减法 输入输出格式 输入格式: 两个整数a,b(第二个可能比第一个大) 输出格式: 结果(是负数要输出负号) 输入输 ...

  3. 一些DevTools的小技巧-让你不止会console.log()

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://www.sitepoint.com/beyond-console-log-leve ...

  4. 一种3位sar adc工作过程推导(二)

    3位sar adc采用下图的电容阵列,需要23个电容,它的基本单元有二进制加权的电容阵列.1个与LSB电容等值的电容:它利用电容上的初始电荷再分配完成二进制搜索算法,因此功耗一般比较小,而且不需要额外 ...

  5. 庐山真面目之十二微服务架构基于Docker搭建Consul集群、Ocelot网关集群和IdentityServer版本实现

    庐山真面目之十二微服务架构基于Docker搭建Consul集群.Ocelot网关集群和IdentityServer版本实现 一.简介      在第七篇文章<庐山真面目之七微服务架构Consul ...

  6. Kubernetes中Deployment部署故障排除

    Kubernetes中Deployment部署故障排除 字符型思维导图 排查pod状态(带标签):kubectl get pods,是否有等待处理的pod? 是?kubectl describe po ...

  7. 详解CURL状态码,最全的代码列表

    curl是一个强大的命令,其中我们经常使用的通过curl 加地址和端口号,判断目标链接状态,下面列出了curl 返回的状态码. 举例: [root@k8s-master1 ~]# curl k8s-m ...

  8. 没想到吧,Java开发 API接口可以不用写 Controller了

    本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便 ...

  9. Python基础(二十一):面向对象“类”第四课——魔法方法

    先划一下重点: 6个魔法方法: 动态操作属性的4个函数: 魔法方法 魔法方法的简单介绍 魔法方法的命名规则:方法名(前后各有2个下划线). 通常情况下,不会主动去调用魔法方法,而是在满足一定的条件下, ...

  10. Struts2(十六篇)

    (一)Struts2框架概述 (二)Struts2配置文件 (三)Struts2的Action(简单讲解版) (四)Struts2的Action(深入讲解版) (五)Struts2处理结果管理 (六) ...