首先,大家看到這個問題,可能并不陌生,而且腦子里第一映像就是使用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包為什么會有這么大的區別???