docker 环境中在tomcat容器中部署spring boot项目

这两天在tomcat容器中搭建springboot项目,好多次都是tomcat跑起来了,但是项目没有跑起来,查询了很多资料,记录下自己遇上的坑。

1、tomcat容器构建并跑起来后,登录tomcat的首页显示404,说明tomcat确实跑起来了,但是找不到index首页资源,因此需要进入容器,将tomcat目录下的webapps.list里面的内容复制到webapps目录下:cp -r webapps.list/* webapps/。这样再访问8080端口即可访问到tomcat的首页。

2、tomcat跑起来后,无法访问项目中的资源

在项目里面可以构建一个controller专门用于测试的,放在tomcat测试项目是否正常的跑起来了。在运行的tomcat中无法访问项目中的资源,很大的一个可能就是项目本身存在问题,没有正常的启动。这里有几个需要注意的问题:

(1)首先就是项目打包方式,是war而不是jar。

(2)在pom.xml文件中,spring-boot-starter-web依赖节点中要移除spring-boot-starter-tomcat依赖节点,需要重新用一个新的依赖专门依赖tomcat  

如:

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

(3)在<build>部分里需要设置项目打包的名字,即添加<finalName>projectName</finalName>。

(4)修改启动类的启动方式,继承SpringBootServletInitializer类,重写configure方法,如:

@Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(SpringBootTest.class);
    }

(5)将war包复制到tomcat下的webapps目录下即可访问。

(6)另外有一个点可能会被忽视,就是springboot项目可能会依赖其他的组件,如MySQL,Redis等,因此项目在启动之前需要将相关的配置完毕,如果没有,项目在tomcat就会启动失败,因此也就访问不了项目里的资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值