SpringBoot打成war包的步骤,并解决SpringBoot打成war包后无法访问controller层的问题

1、在idea中使用springboot打成war包并能部署到外部独立服务器中

        第一步:新建一个SpringBootStartWarApplication类 继承 SpringBootServletInitializer类

        SpringBootServletInitializer类作用:因为在外部容器部署的话,就不能依赖于Application的main函数了,而是要以类似于web.xml文件配置的方式来启动Spring应用上下文,

    此时我们需要在启动类中继承SpringBootServletInitializer并实现configure方法,这个类的作用与在web.xml中配置负责初始化Spring应用上下文的监听器作用类似

【注意】:这个新建的类,与springboot的启动类是同级的

代码如下:

public class SpringbootStartWarApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        //参数是springboot的启动类
        return builder.sources(JspApplication.class);
    }
}

        第二步:修改pom.xml文件,目的是让springboot内嵌的tomcat在运行时不起作用。

                

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <!--排除springboot中内置的tomcat,避免打成war包后和外部独立的tomcat冲突-->
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        第三步:在pom.xml文件中自定义打包后的包名,此包名会作为访问服务器的跟路径。还要在pom.xml中指定打成war包,不然默认会打成jar包。

<packaging>war</packaging>

                

<build>
    <!--指定打包后的文件名称-->
        <finalName>myFirstWar</finalName>
</build>

         第四步:使用springboot中maven插件直接进行打包,建议先双击clean一下,再双击package即可。

        第五步:打包完成后会出现在该项目的target目录下,将war包复制一份并粘贴到tomcat安装目录下的webapps中。 

        第六步: 进入tomcat目录下的bin目录中双击运行startup.bat文件启动tomcat服务器,

我这里的名字是startup9.bat。

         

        最后就可以直接去服务器输入URL访问你部署的服务了。

2、解决SpringBoot打成war包后无法访问controller层(404)的问题

        第一次打成war包被这个问题折磨了一个多小时,找了很多种方法,对我的问题都没用。

 推荐一篇大佬的文章,虽然我的问题不是这些,但写的很好

链接:idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到 - 星朝 - 博客园

        如果还是不能解决你的问题,就返回到上面的第五步,看看你外部运行的tomcat服务器版本和springboot中内嵌的版本是否一致。

        如果不一致一定要改成一致的版本!!! 我的问题就是这么解决的。

       

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

终有弱水替沧海i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值