1. 程式人生 > >阿里雲伺服器搭建 踩坑日誌(四)jar包改war包

阿里雲伺服器搭建 踩坑日誌(四)jar包改war包

spring boot 框架下打包,預設是jar包,上傳到伺服器上 可以直接執行,不需要單獨的配置tomcat環境,十分方便。

但是 在實際使用過程中,如果需要修改專案,比如只是修改少量的介面格式,就需要重新上傳jar包,這一點就非常不方便了,尤其是在公司網路做了限制(比如我們公司),上傳50M的包需要十分鐘的情況下,就想哭了。

所以我還是重新使用war包了。

 

一、Spirng boot 打war包

這個在網上很容易找到。比如:

https://blog.csdn.net/datiancai2008/article/details/60466313

按照文件修改專案,就能打出war包了

注意:

1、通過tomcat執行專案,那麼在專案本身中配置檔案application.properties 中的的tomcat的相關屬性就不起作用了,比如

#Tomcat 相關配置
server.port =8099
server.servlet.context-path=/

①埠號是在tomcat的service中配置,專案名稱是tomcat中 war包名稱 。

②這裡可以在pom.xml檔案中配置war包的名稱,避免每次都要改名字。

 

二、tomcat 中文亂碼問題

執行之後發現新版的tomcat上中文變為了亂碼。

網上文件也很多,整理了一下,問題可能出現的地方有:

1、統一所有專案,檔案的編碼格式都為utf-8

 ①在conf目錄下 server.xml檔案裡面設定埠的編碼為utf-8 。

② 於在bin 目錄下的catalina 配置檔案中,新增以下設定

set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%  -Dfile.encoding=UTF-8" 

③修改bin目錄下startup.bat檔案

將call "%EXECUTABLE%" start %CMD_LINE_ARGS%  改為 call "%EXECUTABLE%" run %CMD_LINE_ARGS%

2、檢視制臺資訊,( 標題處,右鍵,選擇屬性),檢視單錢內碼表編碼,

我出現的就是這個問題,在新版的tomcat上,預設是936 GBK格式的。

修改方法:

在windows 環境中

執行中輸入regedit命令,開啟登錄檔,找到HKEY_CURRENT_USER→Console→Tomcat(如果你改了tomcat的標題欄,這裡就是你開啟的命令視窗的名字),

找到CodePage項,沒有則建立,更改值為十進位制的65001,點選確定。

在實際操作過程中,有可能會遇到 沒有tomcat這個檔案的情況,執行tomcat,開啟一個介面比如localhost:8080,然後在檢查一下有沒有目錄。

 

三、war啟動失敗

在實際操作過程中,發現 tomcat正常啟動了,但是 war包專案一直啟動失敗, 

 而且 專案用IDEA編輯工具run是能夠正常執行的,哭

 因為這是個問題在tomcat的日誌中顯示很不明顯,所以話了很多時間去定位。

①沒有配置啟動項,

需要在Application啟動類中基礎SpringBootServletInitializer 並複寫configure方法。這是網上的提的的,在文章上部分提到的打war包的時有提到。

如果沒有配置,專案不會正常啟動,也就打不開

② tomcat版本問題,

這個是網上提到的很多的。

我的tomcat是8.5的。試了6、7、9 都沒有解決問題。還花了很多時間去解決版本不同而引發的其他的問題,坑

③jar 包重複的問題

按照tomcat的日誌,和網上查到的,確實在JDK版本和tomcat 版本不配的情況向出現。

 

最後在logs檔案下找到了詳細的報錯日誌 !!!!

平時看的是catalina檔案,裡面是tomcat相關的日誌,這裡面對專案專案的錯誤日誌記錄的比較粗糙。

但是在localhost檔案中,裡面的有詳細的錯誤日誌。

最後定位是專案本身有bug。

解決了專案中springboot直接釋出和使用tomcat釋出的一個相容性問題之後,就成功的使用tomcat釋出了springboot打的war包了

之前不清楚,真的浪費了好多時間。