部署項(xiàng)目到項(xiàng)目現(xiàn)場(chǎng)測(cè)試環(huán)境
JDK1.8
Tomcat8.5
Maven打包好的war
Linux-----Centos
不知道誰(shuí)給現(xiàn)場(chǎng)的Tomcat,將其上傳到Linux平臺(tái)******目錄,并且進(jìn)行解壓。直接啟動(dòng)
圖1:
![](/d/20211016/bcea927c8cc7509f685cbc5e3890f8fa.gif)
問(wèn)題1
因?yàn)槭堑谝淮螁?dòng)Tocmat,沒(méi)有日志文件。所以直接啟動(dòng) ./startup.sh。后續(xù)可以使用以下命令動(dòng)態(tài)的查看日志信息。執(zhí)行后提示沒(méi)有執(zhí)行權(quán)限
./startup.sh & tailf ../logs/catalina.out
問(wèn)題分析: .sh可執(zhí)行文件 當(dāng)前用戶(hù)都不具備權(quán)限
問(wèn)題解決: 使用命令:chmod u+x *.sh。在tomcat/bin目錄下執(zhí)行
命令分析: 表示對(duì)當(dāng)前目錄下的所有.sh文件的所有者增加可執(zhí)行權(quán)限。
- chmod是權(quán)限管理命令change the permissions mode of a file的縮寫(xiě)
- u 代表所有者;
- x 代表執(zhí)行權(quán)限;
- “+” 表示增加權(quán)限。
- 也可以單獨(dú)指定一個(gè)文件 比如:chmod u+x abc.sh
- 然后用./startup.sh啟動(dòng)。
圖2:
![](/d/20211016/0b15adccac0664a3cfd820c94f3e1558.gif)
問(wèn)題2
啟動(dòng)之后報(bào)錯(cuò)找不到 *****目錄下的文件。
問(wèn)題分析: 此問(wèn)題出現(xiàn)是因?yàn)樵?tomcat 的server.xml文件中配置了多個(gè) Context環(huán)境。但是在指定的目錄下并沒(méi)有項(xiàng)目部署。
問(wèn)題解決: 刪除server.xml文件中所有的Context。刪除 tomcat 目錄webapps以及wtpwebapps 下所有部署過(guò)的項(xiàng)目。此時(shí)只是單獨(dú)啟動(dòng)一個(gè) ebank。啟動(dòng)成功,訪問(wèn)8080成功。
圖3:
![](/d/20211016/247b0a34cabbe79176feadb10597f522.gif)
問(wèn)題3
在 tomcat 服務(wù)器 webapps上添加Maven打包好的war包。之后進(jìn)行啟動(dòng)。但是報(bào)錯(cuò)端口被占用。
問(wèn)題分析: 這個(gè)操作是在沒(méi)有暫停之前那一步操作進(jìn)行的。所以導(dǎo)致端口被占用??墒侵苯訒和omcat之后還是報(bào)端口被占用
問(wèn)題解決: 采用暴力一點(diǎn)的方式:
查詢(xún)ebank進(jìn)程ID:ps aux|grep tomcat
直接殺掉進(jìn)程:kill-9 PID 殺掉tomcat的進(jìn)程,之后可以正常的啟動(dòng)圖4:
![](/d/20211016/233d2de2596b70cecf513b7ea9345b73.gif)
問(wèn)題4
此時(shí)雖然可以正常啟動(dòng),但是報(bào)錯(cuò):java.lang.OutOfMemoryError: PermGen space(提示內(nèi)存溢出,屬于永久區(qū)的內(nèi)存溢出)。
問(wèn)題分析: Tomcat的內(nèi)存參數(shù)之前并沒(méi)有設(shè)置過(guò),當(dāng)前部署的項(xiàng)目占用內(nèi)存較大加載的class較多。導(dǎo)致永久區(qū)內(nèi)存不夠使用。
問(wèn)題解決: 將tomcat 的bin 下 catalina.sh文件復(fù)制一份進(jìn)行修改,將原先的進(jìn)行備份。在catalina.sh文件中 找到cygwin=false位置的前面 添加參數(shù),注意引號(hào)要帶上
JAVA_OPTS="-Xms256m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=256m"
將修改后的文件替換到tomcat/bin下。
圖5:
![](/d/20211016/44afbaa37705705a9c5a802980ef4a3e.gif)
圖6:
![](/d/20211016/1c62f11fcb492f2375b8c8d72b443fcf.gif)
問(wèn)題5
此時(shí)再次啟動(dòng),但是提示找不到catalina.sh文件?
問(wèn)題分析: 因?yàn)樵趕tartup.sh執(zhí)行文件中會(huì)調(diào)用catalina.sh執(zhí)行文件。從而啟動(dòng)Tomcat服務(wù)。后續(xù)使用命令 ll 查看bin目錄下。發(fā)現(xiàn)問(wèn)題此時(shí)的catalina.sh 文件不在是一個(gè)可以執(zhí)行的文件了。(不是綠色的)問(wèn)題解決: 再次使用chmod u+x catalina.sh 賦予可以執(zhí)行的權(quán)限。
圖7:
![](/d/20211016/8f61acf5a7d9ff6a09c4402f3b953312.gif)
圖8:圖中以hello.sh 舉個(gè)栗子。(顯示為黑色,與catalina.sh 不同)
![](/d/20211016/474978fb7389f21ebed4b15224bfedfd.gif)
問(wèn)題6
啟動(dòng)成功,但是在瀏覽器確訪問(wèn)不到項(xiàng)目,訪問(wèn)8080成功。
問(wèn)題分析: 在Tomcat的webapps目錄下發(fā)現(xiàn),經(jīng)過(guò)Tocmat的解壓縮將各個(gè)War包解壓后 都帶有版本號(hào)(war包是Maven打包生成的,帶有版本號(hào))。瀏覽器訪問(wèn)的正確地址是不帶版本號(hào)的問(wèn)題解決: 刪除項(xiàng)目,重新命名War包。再次啟動(dòng)。到此為止全部成功圖8:
![](/d/20211016/bd6941d9810c4869a2eb25142e3ec040.gif)
額外使用的命令
清空日志:
echo -n "" > ../logs/catalina.out
固定語(yǔ)法:echo -n "" >
查看日志大?。?/strong>
du -h ../logs/catalina.out
固定語(yǔ)法:du -h >
到此這篇關(guān)于解決Linux部署Tomcat發(fā)布項(xiàng)目過(guò)程中各種問(wèn)題的文章就介紹到這了,更多相關(guān)Linux部署Tomcat內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!