Web項目打成war包部署Tomcat時運行startup.bat直接閃退部署失敗解決方案

即上篇經過將web項目打成war包部署到Tomcat服務器,解決mysql問題後,又出現了新問題,真是一波三折,因此將解決過程分享給你們,但願能幫助到小夥伴們~html

將打好的war包拷貝到Tomcat的webapps目錄,而後在Tomcat的bin目錄找到startup.bat批處理文件,直接雙擊執行,結果運行幾秒後直接閃退,頓時有種很差的預感,在瀏覽器訪問web項目,結果連localhost:8080都沒法訪問,web項目未發佈成功,一臉懵逼~mysql

沒有日誌看不到爲啥發佈不成功額,想了想,能夠稍微修改下startup.bat批處理文件,添加PAUSE,這樣運行結束只有按任意鍵纔會關掉窗口(調試成功,在去掉PAUSE)。web

若是有錯誤信息,這時候會顯示出來,能夠再根據它的錯誤提示。sql

此時,發現顯示了一些環境變量,是否是環境變量沒有配置引發的報錯呢,就去檢查了下,發現沒有配置JRE_HOME環境變量。配置後,發現仍是閃退。apache

也不清楚時環境變量引發的仍是什麼緣由,沒轍了,只能再找度娘了。瀏覽器

通過查資料,關於Tomcat中startup.bat原理的相關內容,以爲頗有幫助,摘取部分片斷分享下,可能跟解決這個問題不要緊,可略過~tomcat

startup.bat 解析服務器

 驗證CATALINA_HOME 環境變量是否設置,若是沒有設置則經過CATALINA_HOME/bin目錄下查找catalina.bat文件來肯定CATALINA_HOME環境變量是否有效,若是沒有找到catalina.bat 則goto end,結束。app

驗證catalina.bat是否存在,若是不能存在則結束。webapp

判斷啓動 startup.bat 是否有參數,若是有參數,若是有有則賦值給 CMD_LINE_ARGS變量。 
經過call執行catalina.bat ,並傳入參數。

其實startup.bat 的主要做用就是幫你找到catalina.bat並執行它。

好處:

若是你配置CATALINA_HOME的環境變量了,就能夠把startup.bat 放到任何目錄下,均可以啓動tomcat了。 

 好了,根據對startup.bat文件的解析,發現如今的問題跟環境變量不要緊。瞬間有點失落。經驗告訴我,能夠查看日誌撒。發現日誌存在錯誤日誌額。

問題解決方法請參考:Web項目打成war包部署到tomcat時報MySQL Access denied for user 'root'@'localhost' (using password: YES)錯誤解決方案

Tomcat其餘問題總結:

問題一:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

Tomcat的startup.bat,它調用了catalina.bat,而catalina.bat則調用了setclasspath.bat,只要在setclasspath.bat的開頭聲明環境變量(紅色兩行)就能夠了,緣由是後來較新版本安裝完不會自動登記環境變量JAVA_HOME,JRE_HOME。

這樣在每次運行startup.bat時就自動註冊了JAVA_HOME,JRE_HOME。

問題二:Cannot find "D:\Program Files\apache-tomcat-7.0.52\bin\setclasspath.bat"

多是CATALINA_HOME的值在某個地方被寫死了,像個人綠色版tomcat在bin文件下多了一個setenv.bat的文件,打開一看果真是在這裏面被寫死了CATALINA_HOME的路徑,這應該是爲了某種緣由被人後加上的設置文件,把這個文件刪除以後,tomcat能夠正常運行了。

這種狀況,能夠去看catalina.bat中的配置,以下圖,可能配置死的內容就在這個文件裏。

相關文章
相關標籤/搜索