关于springBoot项目采用外部tomcat加载的问题

本文描述了作者在尝试将SpringBoot应用部署到外部Tomcat时遇到的启动类加载问题。经过一系列步骤,如检查pom.xml配置、构建war包、验证SpringBootServletInitializer子类、确认jar包存在等,最后发现问题是由于使用了Tomcat6,升级到Tomcat7后问题解决。

问题描述:外部tomcat无法加载springBoot启动类

我的验证过程:

1.第一步检查pom配置,确保不采用springBoot内置的tomcat

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
//排掉内置的tomcat
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
//增加tomcat provide依赖,供编译时使用
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

2. idea构建标准的web [war包] 目录结构

 

3.发现tomcat内部还是跑不起来,没有加载springBoot启动类

 

4.检查使用写了 SpringBootServletInitializer的子类实现

public class ServletInitializer extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(HelloWorldMainApplication.class);
    }
}

5.再跑发现还是跑步起来

 

6.检查idea下对应的artifact下是对应的lib包下是否有对应的jar包,有

7.再跑tomcat,发现还是跑不起来,springBoot启动类无法加载

 

8.将项目达成war包,同时检查war包下是否有对应的jar包,皆有,图如下

9.部署在tomcat下webapps里面,发现依然没有加载springBoot启动类

10.开始怀疑tomcat的版本,问题,自己用的是tomcat6,改成tomcat7,OK,一切完美

11.总结,还是要理智分析问题,才行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值