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

 更新时间:2018年01月18日 11:36:26   作者:Paranoia_ZK  
这篇文章主要介绍了Springboot打成war包并在tomcat中运行,在文中还给大家介绍了SpringBoot war包tomcat运行启动报错(Cannot determine embedded database driver class for database type NONE)的解决方法,需要的朋友可以参考下

把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}),亲测有效。

相关文章

  • java8日期工具类封装的实战记录

    java8日期工具类封装的实战记录

    java time包中的是类是不可变且线程安全的,新的时间及日期API位于java.time中,下面这篇文章主要给大家介绍了关于java8日期工具类封装的相关资料,需要的朋友可以参考下
    2021-09-09
  • Spring从入门到源码之IOC基本用法

    Spring从入门到源码之IOC基本用法

    这篇文章给大家介绍了Spring从入门到源码之IOC基本用法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2022-01-01
  • 浅谈JAVA 类加载器

    浅谈JAVA 类加载器

    这篇文章主要介绍了JAVA 类加载器的的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-06-06
  • 浅谈使用java解析和生成JSON

    浅谈使用java解析和生成JSON

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中google-gson和org.json比较简单,两者使用上差不多但还是有些区别。下面我们就来分别介绍下用他们构造和解析Json数据的方法示例。
    2015-08-08
  • Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突

    Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突

    这篇文章主要介绍了 Tomcat Cannot assign requested address: JVM_Bind 非端口占用冲突的相关资料,需要的朋友可以参考下
    2017-01-01
  • MyBatis Generator快速生成实体类和映射文件的方法

    MyBatis Generator快速生成实体类和映射文件的方法

    这篇文章主要介绍了MyBatis Generator快速生成实体类和映射文件的方法,通过示例代码介绍了MyBatis Generator 的使用,本文结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-10-10
  • Java的StringBuilder在高性能场景下的正确用法

    Java的StringBuilder在高性能场景下的正确用法

    StringBuilder 对字符串的操作是直接改变字符串对象本身,而不是生成新的对象,所以新能开销小.与StringBuffer相比StringBuilder的性能略高,StringBuilder则没有保证线程的安全,从而性能略高于StringBuffer,需要的朋友可以参考下
    2023-05-05
  • Java获取视频时长和封面截图

    Java获取视频时长和封面截图

    这篇文章主要为大家详细介绍了如何使用Java获取视频时长和封面截图功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-03-03
  • Java中Integer两种转int方法比较

    Java中Integer两种转int方法比较

    本文主要介绍了Java Integer两种转int方法比较。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • Mybatis核心组成部分之SQL映射文件揭秘详解

    Mybatis核心组成部分之SQL映射文件揭秘详解

    MyBatis真正的力量是在映射语句中,下面这篇文章主要给大家介绍了关于Mybatis核心组成部分之SQL映射文件揭秘的相关资料,现在分享给大家,给大家做个参考。一起跟随小编过来看看吧
    2018-11-11

最新评论