关于SpringBoot的WEB前后端项目打包踩坑问题记录

       最近,我在尝试将一个本地使用SpringBoot开发的WEB前后端项目部署到线上环境进行运行。过程中,遇到了一个问题,就是将打包后的jar包部署到本地与线上环境并运行后,发现尽管程序是可以正常运行跑起来了,但是,工程项目的前端页面却始终显示404(页面无法被找到),这个问题,是我在本地使用IDEA环境运行项目代码时候,不曾发现到的BUG问题。于是乎,我就开启了一趟,针对这个问题的踩坑排查之旅。

        

       首先,想到的导致问题现象出现的原因点,是本地通过的是IDEA运行环境执行的代码,并不是通过jar包来直接执行,并得到运行结果的,因此,发现到了可能出错的问题方向:就是下图中这个目录下的静态资源文件,如果不对打包插件的resources部分做专属的设置,在正常情况下,/src/main/webapp/目录下的相关的文件内容,是无法正常被打包到最后生成的jar包之中的,默认情况下,是仅仅会打包/src/main/resources/目录下的资源文件到jar包之中。

        通过解压打出的jar包,可以看到,所需要的前端资源html等文件,确实没有被打入jar包之中:

jar -xvf o2o-1.0-SNAPSHOT.jar

于是乎,我做了第1次的尝试改造如下:

再次使用打包命令:

mvn clean package -DskipTests

使用jar包的解包命令解压jar包,并查看效果:

jar -xvf o2o-1.0-SNAPSHOT.jar

本地运行jar包:

java -jar o2o-1.0-SNAPSHOT.jar

于是乎,又踩到了一个坑,报错内容如下:

经排查,报错问题的原因:由于修改了打包插件对resouces部分的定义,导致/src/main/resources/目录下的配置资源文件并没有如预期般那样被打入jar包。

再次修改打包插件中,对resouces部分的定义,补充丢失的部分:

再次打包并运行之后,验证相关的html文件确实是已经被打入jar包指定的目标位置:

META-INF/resources目录下,同时,项目代码也正确跑起来了,

然而,再次前往前端页面进行查验效果的时候,还是看到了这个界面:

       这个,就是本次操作最让我头疼的一个点了,因为经过排查,该打入的静态资源文件也打入了,然后使用IDEA运行项目的时候,前端资源也可以正常进行呈现,但是,一旦打成jar包运行后,前端页面就始终会告知"404 NOT FOUND"的错误。然后,我经过很多次尝试后,均始终没有得到打成jar包后应当正确运行的预期效果。经过很多次包括和AI以及传统搜索引擎的交互,以及个人的操作尝试后,终于,在通过这篇博文的提示下,找到了问题的症结所在。

springboot 将jsp项目打成jar包 出现404错误-优快云博客

原来,是使用的SpringBoot打包插件版本出现了问题,默认选择的是,看着更高且稳定的1.5.8.RELEASE版本(继承自SpringBoot自身Starter的版本),然而,实际真正应该使用的却是1.4.2.RELEASE,这个比较低一些的版本。最后,经过对这个打包插件版本的调整之后,终于,是可以跑通整个前后端的WEB项目了,就这个404的问题,前前后后折磨了我差不多2天的时间。

项目的WEB前端页面,最终在不懈的尝试努力之下,还是正常显示了,很开心。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值