springboot打包成war,部署到tomcat无法访问的问题

时间:2023-01-25 09:57:04

如题:实在是太坑。平时本地测试觉得很方便,但是到了项目打包发布掉链子了。

如很多帖子一样:

首先springboot内嵌的tomcat,再依赖servlet-api,修改启动类继承SpringBootServletInitializer,打成war放入tomcat中

一、pom.xml删掉内嵌tomcat

`
     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope><!-- 打成war的时候打开注释,本地开发用内嵌tomcat时加上注释 -->
    </dependency>
  <dependency>
  <groupId>javax.servlet</groupId>
   <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  </dependency>

二、启动类:Application

    @SpringBootApplication
    @ComponentScan(basePackages = "com.yzker")
    public class Application extends SpringBootServletInitializer {

        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(Application.class);
        }

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


    }

再打包发布,然而然并卵。

最后的解决方法是在idea重新配了个Tomcat server。本地调试,本地能跑起来。打成war包服务器也能跑起来,这才是真实的模拟环境。这也是springBoot的缺陷。

springboot打包成war,部署到tomcat无法访问的问题