tomcat常見的錯誤與解決方案小結(jié)
一、tomcat啟動時錯誤
問題1:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program;
解決:沒有在tomcat的配置文件.bash_profile中設(shè)置環(huán)境變量JAVA_HOME,具體設(shè)置方法為:加入如下幾行:
JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具體值要以實際的jdk安裝路徑為準(zhǔn)) export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jar export CLASSPATH
問題2:Error occurred during initialization of VM Could not reserve enough space for object heap
解決:在tomcat的bin目錄下,catalina.sh文件的tomcat內(nèi)存參數(shù)配置過大,超過機器可用內(nèi)存總數(shù)造成,修改到適當(dāng)?shù)闹导纯桑薷牡膮?shù)為:JAVA_OPTS="-Xms50m -Xmx60m"
問題3:tomcat啟動時報某個目錄沒有權(quán)限,啟動失敗,或者不能執(zhí)行某些jsp頁
解決:tomcat需要tomcat用戶具有一些目錄和文件的相應(yīng)權(quán)限, 所有目錄應(yīng)該具有讀寫執(zhí)行(瀏覽)的權(quán)限,jsp,class文件應(yīng)該最少具有讀權(quán)限, 一些文件需要寫權(quán)限,下面是已知的需要讀寫權(quán)限文件的列表:
$CATALINA_HOME/logs下所有文件
$CATALINA_HOME/work下所有文件
$CATALINA_HOME/publish/main/count.txt文件
$CATALINA_HOME/publish/chatroom/resource下的所有.xml文件
所有上傳圖片目錄都需要寫權(quán)限。
改變文件目錄權(quán)限的方法:執(zhí)行下面命令,設(shè)置所有的tomcat安裝下的文件和目錄,可以保證執(zhí)行,但是不是很安全。
1. 設(shè)置tomcat上級目錄/opt所有用戶都有讀寫執(zhí)行權(quán)限:
chmod 777 [tomcat的上級目錄]
2. 設(shè)置tomcat5.0.28目錄下的所有文件的屬主為tomcat:
chown -R tomcat [tomcat安裝目錄]
3. 設(shè)置所有tomcat5.0.28下的所有文件和目錄的屬主(tomcat)具有讀寫執(zhí)行權(quán)限
chmod 700 -R /opt/tomcat5.0.28
問題4:執(zhí)行startup.sh文件后告訴地址已經(jīng)使用,導(dǎo)致tomcat不能啟動
解決:可能是前一次執(zhí)行./shutdown.sh文件關(guān)閉tomcat時沒有停止已經(jīng)啟動的Java進程,而這個進程仍然在監(jiān)聽tomcat所使用的端口,或者有另外一個tomcat正在運行,server.xml文件中的監(jiān)聽端口和當(dāng)前tomcat沖突。
使用下面命令查看當(dāng)前系統(tǒng)是否有正在監(jiān)聽的端口(8080--webcache, 90--www或http).
1. 列出所有系統(tǒng)正在監(jiān)聽的端口和綁定的地址netstat -l
2. 找出當(dāng)前系統(tǒng)中的所有進程,管道符號過濾輸出顯示包含java字符串的行
ps -A |grep java tty time proc 1021 ? java
3. 結(jié)束一個指定的進程:
kill [進程號]
4. 強制殺死一個進程:
kill -9 [進程號]
如果確定不是別的tomcat運行導(dǎo)致的沖突或者沒有java進程運行可以再次運行startup.sh文件啟動tomcat
二、Tomcat 運行時錯誤及解決
問題1: org.apache.commons.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Network error IOException: Connection refused: connect)
問題2:Caused by: java.sql.SQLException: Network error IOException: Connection refused: connect
問題3:Caused by: java.NET.ConnectException: Connection refused: connect
解決:數(shù)據(jù)庫未開情況下運行tomcat出現(xiàn)的問題,把數(shù)據(jù)庫打開就行了
問題4:java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)Vat net.sf.cglib.core.ClassEmitter.begin_class(ClassEmitter.java:77) 這個問題是最最常見的,第一次整合ssh的時候會發(fā)現(xiàn)這個問題,有時候刪除掉相關(guān)的包還是會沖突。所以解決辦法我一般是:
解決:把MyEclipse中的hibernate中的有關(guān)ASM的包全部刪除,將spring中asm包拷貝進去重啟就Ok了,有時候需要刪除其他文件,到網(wǎng)上找找吧;
還有個解決辦法:Spring 和 Hibernate 共用的一些 jar 文件發(fā)生了版本沖突, 刪除 WEB-INF/lib/asm-2.2.3.jar 然后重啟 Tomcat.
問題5:javax.servlet.jsp.JspException: Invalid argument looking up property usersVO.account of bean loginForm
解決:一般提示這種錯誤表示VO中的form沒有實例化,在reset方法中new一下就Ok了。養(yǎng)成良好的編碼習(xí)慣可以避免這種簡單錯誤。
問題6:嚴重: Exception loading sessions from persistent storage
解決:tomcat安裝目錄\work\Catalina\localhost\{webAppName}\SESSIONS.ser,刪除此文件
三、出現(xiàn)404錯誤是因為你所請求的頁面不可用!
這是response對象的http響應(yīng)中的狀態(tài)行404表示當(dāng)前請求的頁面不可用!200表示測試通過。500表示服務(wù)器內(nèi)部發(fā)生錯誤等!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。
- tomcat報錯:Wrapper cannot find servlet class ...問題解決
- linux下實時查看tomcat運行日志的方法
- 在同一臺服務(wù)器上配置多個Tomcat的方法
- Docker 自動部署tomcat詳解
- 對一個tomcat實現(xiàn)多端口、多域名訪問的方法
- HTML5基于Tomcat 7.0實現(xiàn)WebSocket連接并實現(xiàn)簡單的實時聊天
- Tomcat 7通過設(shè)置不同的端口部署兩個項目
- 搭建Tomcat 8源碼開發(fā)環(huán)境的步驟詳解
- Tomcat報錯:HTTP Status 500 (Wrapper cannot find servlet class)解決辦法
相關(guān)文章
Tomcat與JDK版本對應(yīng)關(guān)系以及Tomcat各版本特性
這篇文章主要介紹了Tomcat與JDK版本對應(yīng)關(guān)系以及Tomcat各版本特性,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11解決Idea的tomcat啟動報多個listener的錯誤問題
這篇文章主要介紹了解決Idea的tomcat啟動報多個listener的錯誤問題,本文給大家分享解決方法對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10tomcat虛擬主機_動力節(jié)點Java學(xué)院整理
對于Tomcat服務(wù)器,可以放置多個網(wǎng)站(多個web應(yīng)用),這就是講配置多個虛擬主機,可以看成好像有多個主機,而每個主機上有一個web應(yīng)用2017-07-07Tomcat 啟動時 SecureRandom 非常慢解決辦法
這篇文章主要介紹了Tomcat 啟動時 SecureRandom 非常慢解決辦法的相關(guān)資料,需要的朋友可以參考下2017-06-06