1、tomcat閃退
1.1 環境變量錯誤
startup.bat最后假如PAUSE進入調試狀態,雙擊startup.bat,可以看到錯誤,根據錯誤提示設置相應的環境變量,JAVA_HOME等。
1.2 eclispe設置問題
當eclispe server locations選項為第二項時,發布項目會修改tomcat下面的server.xml文件,如果中間存在手動清理發布目錄會導致server.xml中注冊的web服務找不到相關文件而導致閃退;也就是說,閃退也可以查看server.xml,是不是配置錯誤導致的。
2、eclipse發布web工程
2.1 將server locations設置為可配狀態
右鍵server,選擇Add and Remove...,然后選擇Remove all,確定。
右鍵server,選擇clean。
2.2 配置server locations
選項如圖所示
經過a步驟可以使得選項成可選狀態,其中:
第一項為使用eclipse本地配置metadata,並不會修改tomcat配置,而是部署調試的web項目在eclipse工作空間,調用tomcat組件實現啟動web服務。
第二項為使用tomcat安裝目錄,並且會修改server.xml文件
第三項為使用特定目錄
其他選項:server path為tomcat根目錄,Deploy為發布目錄。
如果上圖選擇第一項, 發布的路徑是D:\eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps,並且調用tomcat組件,調試本地項目,tomcat webapps下的項目並不會啟動,如果訪問localhost:8080會產生404錯誤。
如果選擇第二個選項,會在tomcat目錄下建立一個wtpwebapps文件夾,並且會把web工程生成的產物拷貝到該目錄下, 同時會在tomcat的conf目錄下的server.xml中<host>節點注冊一個web工程,如圖:
docBase為web工程文件,可為mavern target下的相應工程名的文件夾產物,也可以為war文件,path則為url的地址。此時,tomcat中部署的其他web服務也能正常訪問(不推薦這種方法)。如果中間存在錯誤,可能導致tomcat獨立啟動時閃退。
第三個選項暫時沒用過,應該是可以自定義發布的路徑。
3、tomcat發布工程
3.1 發布到webapps目錄下
將工程名產物文件夾或者導出為war包放到目錄下即可,war在tomcat會多一個步驟,就是解壓為和產物文件夾一樣的文件夾。
3.2 發布到其他路徑(如tomcat下的mydir)
將相應工程文件夾或者war拷貝到tomcat下的mydir下
修改conf下的server,在host節點下增加context節點,注冊web服務。
path="" 為部署后運行的url路徑,docBase為你的war的文件名。 第一次運行的時候,tomcat會自動解壓war,生成path指定名稱的網站。
不管是war文件還是web工程產物文件夾,最終都會被tomcat拷貝到webapps下面,只是war是解壓之后拷貝。
4、發布到tomcat下是war好還是產物文件夾好?
個人認為:打成war包的好處是不會缺少目錄,並且只管理好一個發布文件就好。