Springboot打成war包并在tomcat中运行的部署方法

作者:Paranoia_ZK 时间:2022-06-29 07:53:32 

把spring-boot项目按照平常的web项目一样发布到tomcat容器下

一、修改打包形式

在pom.xml里设置 <packaging>war</packaging>

二、移除嵌入式tomcat插件

在pom.xml里找到spring-boot-starter-web依赖节点,在其中添加如下代码,


<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
 <exclusion>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-tomcat</artifactId>
 </exclusion>
</exclusions>
</dependency>

三、添加servlet-api的依赖

下面两种方式都可以,任选其一


<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>

四、修改启动类,并重写初始化方法

我们平常用main方法启动的方式,都有一个App的启动类,代码如下:


@SpringBootApplication
public class Application {
public static void main(String[] args) {
 SpringApplication.run(Application.class, args);
}
}

我们需要类似于web.xml的配置方式来启动spring上下文了,在Application类的同级添加一个SpringBootStartApplication类,其代码如下:


/**
* 修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法
*/
public class SpringBootStartApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
 // 注意这里要指向原先用main方法执行的Application启动类
 return builder.sources(Application.class);
}
}

五、打包部署

在项目根目录下(即包含pom.xml的目录),在命令行里输入:
mvn clean package即可, 等待打包完成,出现[INFO] BUILD SUCCESS即为打包成功。
然后把target目录下的war包放到tomcat的webapps目录下,启动tomcat,即可自动解压部署。
最后在浏览器中输入

http://localhost:[端口号]/[打包项目名]/

发布成功。

PS:下面看下SpringBoot war包tomcat运行启动报错(Cannot determine embedded database driver class for database type NONE)的解决方法

我们的项目一直以来都是jar包直接运行的,昨天同事说要在tomcat运行,我就帮他倒腾了半天。在文中给大家介绍了,需要的朋友可以点击查看。

然后顺利打包部署进本地tomcat启动就报标题错误,网上搜过都说启动类中加入注解:@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class)

本人亲测无效。

解决方案:

启动类加入注解:@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}),亲测有效。

来源:http://blog.csdn.net/paranoia_zk/article/details/78128792

标签:spring,boot,war,tomcat
0
投稿

猜你喜欢

  • 使用Java实现qq邮箱发送邮件

    2023-10-14 18:24:36
  • 解决C#中取消方向键对控件焦点控制的实现方法

    2021-09-13 08:02:29
  • Java编程基本概念

    2023-09-07 07:15:50
  • Android PullToRefreshLayout下拉刷新控件的终结者

    2021-06-22 02:15:00
  • Android学习笔记-保存数据到SQL数据库中(Saving Data in SQL Databases)

    2023-07-28 08:32:20
  • Android Studio进行APP图标更改的两种方式总结

    2022-02-07 09:08:40
  • C#数据结构之双向链表(DbLinkList)实例详解

    2023-08-23 08:56:44
  • 一文搞懂Java创建线程的五种方法

    2023-10-30 18:35:04
  • 简单实现Android倒计时效果

    2022-03-26 01:58:14
  • android如何改变editText控件中部分文字的格式

    2023-08-24 18:58:36
  • Android自动播放Banner图片轮播效果

    2022-09-06 05:55:42
  • Java sha1散列算法原理及代码实例

    2021-06-28 05:50:22
  • Spring Security 中如何让上级拥有下级的所有权限(案例分析)

    2022-01-28 16:55:26
  • c#根据文件大小显示文件复制进度条实例

    2022-10-10 10:35:16
  • C#图片切割、图片压缩、缩略图生成代码汇总

    2022-01-20 07:51:26
  • Java Socket编程详解及示例代码

    2022-06-29 07:05:27
  • Android Studio使用小技巧:布局预览时填充数据

    2021-06-04 09:00:03
  • SpringMVC多个文件上传及上传后立即显示图片功能

    2021-06-26 12:41:08
  • GraalVM native-image编译后quarkus的超音速启动

    2022-08-09 01:17:27
  • java中文传值乱码问题的解决方法

    2023-11-25 16:26:47
  • asp之家 软件编程 m.aspxhome.com