SpringBoot项目如何打war包问题详解
作者:liucy007 发布时间:2023-06-07 08:33:47
标签:SpringBoot,打war包
1、pom.xml配置修改
<packaging>jar</packaging>
//修改为
<packaging>war</packaging>
2、pom文件添加如些依赖
<!--添加servlet-api的依赖,用来打war包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
3、排除springboot内置的tomcat干扰
<!--最终打成war包,排除内置的tomcat-->
<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>
4、改造启动类
如果是war包发布,需要增加SpringBootServletInitializer子类,并重写其configure方法,
或者将main函数所在的类继承SpringBootServletInitializer,并重写configure方法
当时打包为war时上传到tomcat服务器中访问项目始终报404错就是忽略了这个步骤!!!
改造之前:
@SpringBootApplication
public class MainApp {
public static void main(String[] args) {
SpringApplication.run(MainApp.class,args);
}
}
改造之后:
@SpringBootApplication
public class SpringBootMytestApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringBootMytestApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的Application启动类
return builder.sources(SpringBootMytestApplication.class);
}
}
这种改造方式也是官方比较推荐的方法
5、pom文件中不要忘了maven编译插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
打包操作:
war包打包成功。
如果想用idea中的外置tomcat验证war包是否正常,方法如下:
如果不改成“/” 访问时路径前要加上此路径内容,如下图。
验证成功
来源:https://blog.csdn.net/liucy007/article/details/116711426


猜你喜欢
- 通用配置#下面介绍的整合JDBC和整合MyBatis都需要添加的实体类和配置数据库表#CREATE TABLE `user` ( `id`
- 简介本文用示例介绍SpringBoot如何向容器注册bean(即:将对象加入容器)。法1:@Component(@Controller/@S
- 1、IO流1.流和流的分类什么是IO流?I:Input (输入)O: Ouput(输出)IO流的分类?有多种分类方式:一种方式是按照流的方向
- public class MainActivity extends Activity { public RadioGroup mR
- 首先是main.xml文件代码如下:<LinearLayout xmlns:android="http://schemas.
- 本文实例讲述了java设置session过期时间的实现方法,分享给大家供大家参考。具体实现方法如下:1、Timeout in the dep
- 一、C语言关键字详解1. sizeof sizeof相信大
- 本文主要介绍了java中LinkedList使用迭代器优化移除批量元素原理,分享给大家,具体如下:public interface Iter
- 本文实例讲述了Android自定义控件样式的方法。分享给大家供大家参考,具体如下:Android控件样式自定义是用定义在drawable文件
- 对象重复是指对象里面的变量的值都相等,并不定是地址。list集合存储的类型是基础类型还比较好办,直接把list集合转换成set集合就会自动去
- 最近公司需要做一个告警页面的功能,需要分页,查了很多资料发现PageHelper比较合适故写一篇从零开始的PageHelper使用的教程,也
- /// <summary>/// 人民币大写/// </summary>/// <param name=&qu
- 实现要求1、使用Java图形界面组件设计软件,界面如图所示。2、软件能够满足基本的“加、减、乘、除"等运算要求。3、程序代码清晰,
- 一、前期工作1.开启邮箱服务开启邮箱的POP3/SMTP服务(这里以qq邮箱为例,网易等都是一样的)2.导入依赖在springboot项目中
- 我们在编写完Spring的代码后,往往需要测试代码的正确性,这个时候就需要用到单元测试了。我们这里使用的版本是junit4.一个程序的入口是
- 可能有些同学不明白,为啥要图片反转(不是旋转哦),我们在游戏开发中,为了节省图片资源(空间) 有可能会使用到图片反转,例如,一个人物图片,面
- QTableWidget 是 Qt 中的表格组件类。在窗体上放置一个 QTableWidget 组件后,可以在 Property Edito
- 先看一下效果图实现思路:变成点的控件不是TextView和EditText而是Imageview。首先写一个RelativeLayout里边
- 简单介绍快速排序(Quicksort) 是对 冒泡排序的一种改进。基本思想快速排序算法通过多次比较和交换来实现排序,其排序流程如下:(1)首
- 微服务启动时报错2021-05-18 21:25:44.644 WARN 5452 — [tbeatExecutor-0