欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-07 16:42:40
...

问题描述

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、打包成war的步骤:
(1)pom.xml中添加打包方式

<packaging>war</packaging>

(2)pom.xml中添加依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
</dependency>

(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})

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