springboot项目打成jar包可运行,但打成war包无法运行

问题描述

SpringBoot项目根据官方文档https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file打包成war包后,放入tomcat下运行,catalina.out日志报如下图所示错误:
springboot项目打成jar包可运行,但打成war包无法运行_第1张图片

解决方法

1、打包成war的步骤:
(1)pom.xml中添加打包方式

war

(2)pom.xml中添加依赖


            org.springframework.boot
            spring-boot-starter-tomcat
            provided

(3)启动类继承SpringBootServletInitializer类

@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder applicationBuilder) {
        return applicationBuilder.sources(Application.class);
    }
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

2、问题解决

分析应该是Spring自动加载配置时,发现配置文件中,并没有数据源的url地址,由于该项目仅用到mongo数据库,故排除该数据源类的自动加载。

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

重新打包运行,问题解决。

你可能感兴趣的:(springboot项目打成jar包可运行,但打成war包无法运行)