首先,大家看到这个问题,可能并不陌生,而且脑子里第一映像就是使用mava中的clear package 或者 clear install进行打包,然后在项目中的target文件夹下面找到xxx.war,将这个war包放到外置的tomcat服务器下的webapps下面,最后运行tomcat的bin文件夹下面的startup.bat命令就可以进行访问了,
起初我也是这样跟你们一样的,也这样做了,但最后tomcat运行startup.bat命令时也正常,没有报错,但在浏览器中访问时出现404没有找到的错误,但访问tomcat主页面正常,所以第一直觉就是这个项目打成的war包出现了问题,再看看启动tomcat时打印的内容,如下图:
再看下webapps文件夹,war包解压了,但就是没有运行项目,当时就很苦恼,然后实验了单模块的项目进行打成war包再放到tomcat运行,结果运行正常,这就更苦恼了,然后再百度+分析了下,网上建议springboot项目打成jar包运行,不建议war包运行,但可能是本人性格问题吧,觉得jar包可以,war包为啥不行,然后问了下群里大佬,才解决。
解决方法是:
在idea2018中,点击标题栏中的Build--》Build Artifacts,在弹框中选择build,打成war包后继续将该war包放入到tomcat中运行startup.bat命令,最后访问,完美运行成功!
虽然运行成功了,但还是有点苦恼,然后对比了下运行后解压出来的war包,如下图:
这是使用maven中的clear install或者clear package运行之后打成war包放到tomcat中解压出来的目录
这是使用Build--》Build Artifacts的命令打成war包放到tomcat中解压出来的目录
这一对比,我想大家都能够明白了吧。
但还是感觉那里不对劲,是否有大佬方便出来给我这个小白进行讲解下这两种方式打出来的war包为什么会有这么大的区别???