關於TOMCAT運行問題。。。。
懸賞分:50 - 解決時間:2007-6-7 18:30
我在運行網站時無法顯示,出現如下錯誤提示,請問如何處理。。。。
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: /index.jsp(2,0) The value for the useBean class attribute MyBean.fun is invalid.
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.apache.jasper.JasperException: /index.jsp(2,0) The value for the useBean class attribute MyBean.fun is invalid.
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:405)
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:146)
org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1174)
org.apache.jasper.compiler.Node$UseBean.accept(Node.java:1116)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2213)
org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2219)
org.apache.jasper.compiler.Node$Root.accept(Node.java:456)
org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2163)
org.apache.jasper.compiler.Generator.generate(Generator.java:3320)
org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:198)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.20 logs.
問題補充:本人真的很急很急,馬上就答辯了
如果幫我解決了我還會繼續加分的。。。。
提問者: nicholas_qj - 江湖新秀 四級
最佳答案
要加分的啊~~~
我加油回答你~` 可能出現類似情況的解救辦法(我自己想的 也許對也許不對)
1.沒有在在tomcat的設定檔.bash_profile中設定環境變數JAVA_HOME,具體設定方法為:加入如下幾行:
JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具體值要以實際的jdk安裝路徑為準)
export JAVA_HOME
CLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jar
export CLASSPATH
2.在tomcat的設定檔.bash_profile中JAVA_HOME和CLASSPATH兩個變數值的等號“=”後面存在空格,造成路徑不能識別
3.在tomcat的bin目錄下,catalina.sh檔案的tomcat記憶體參數配置過大,超過機器可用記憶體總數造成,修改到適當的值即可,修改的參數為:JAVA_OPTS="-Xms50m -Xmx60m"
4.在防火牆上做了連接埠映射,使後台登入連接埠不是真正的伺服器發布連接埠,修正方法:登入資訊發布後台管理時,使用伺服器中原本設定的連接埠號碼。
5.修改/etc/sysconfig/下的i18n檔案,將如下兩行:
LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
修改為:
LANG="zh_CN.GBK"
LANGUAGE="zh_CN.GBK:zh_CN.GB18030:zh_CN.GB2312:zh_CN"
6.
6.1. 開啟DOS命令視窗
6.22. 進入tomcat的bin路徑下(tomcat的路徑不要有中文和空格)
6.3. 執行service.bat install,注意:中間是空格,沒有中橫線。 服務即安裝完成。
6.4.進入tomcat的bin目錄下,雙擊tomcat5w.exe
6.5. 在彈出的管理介面中,點擊java頁簽,查看:
a:Java Virtual Machine一欄是否已經記錄了java虛擬機器的路徑(即jvm.dll路徑),如果沒有,請點擊右側選擇按鈕,找到jdk路徑下/jre/bin/server/jvm.dll
b:Java Classpath一欄是否已經記錄了類路徑,包括兩方面:一個是tomcat自己的啟動包,應該指向tomcat下的bin/ bootstrap.jar,第二個是jdk的工具包,指向的是jdk安裝路徑下的/lib/tools.jar,如果這兩個路徑沒有或不完整,請按照 tomcat和jdk的實際安裝路徑填寫完整。否則tomcat服務不能成功啟動。
說明:以上參數如果jdk提前已經正確安裝,就會一切正常。
6.6 在Windows的服務管理和tomcat5w.exe兩個地方都可以停止和啟動tomcat服務
6.7. 如果要卸載tomcat服務,請開啟DOS命令視窗,進入tomcat的bin路徑下(tomcat的路徑不要有中文和空格),執行service.bat remove,注意:中間是空格,沒有中橫線。 服務即卸載完成。
8.
8.1.安裝文檔在:http://java.sun.com/j2se/1.4.2/install-solaris.html
8.2. 注意要安裝solaris的sdk的專門補丁包,在http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/J2SE下載補丁.
8.3. 安裝補丁: unzip J2SE_Solaris_9_Recommended.zip到/var/sadm/patch
8.4.運行:./install_cluster
8.5.zcat j2sdk-1_4_2_08-solaris-sparc.tar.Z|tar -xf -
8.6.去掉j2sdk1.3: pkgrm SUNWj3dmo SUNWj3man SUNWj3dev SUNWj3rt
8.7.pkgadd -d . SUNWj3cfg SUNWj3dev SUNWj3dmo SUNWj3jmp SUNWj3man
SUNWj3rt
8.8. 注意,在裝64位jdk之前一定要先安裝32位的.
9
tomcat需要tomcat使用者具有一些目錄和檔案的相應許可權, 所有目錄應該具有讀寫執行(瀏覽)的許可權,jsp,class檔案應該最少具有讀許可權, 一些檔案需要寫入權限,下面是已知的需要讀寫權限檔案的列表:
$CATALINA_HOME/logs下所有檔案
$CATALINA_HOME/work下所有檔案
$CATALINA_HOME/publish/main/count.txt檔案
$CATALINA_HOME/publish/chatroom/resource下的所有.xml檔案
所有上傳圖片目錄都需要寫入權限。
改變檔案目錄許可權的方法:執行下面命令,設定所有的tomcat安裝下的檔案和目錄,可以保證執行,但是不是很安全。
9.1. 設定tomcat上級目錄/opt所有使用者都有讀寫執行許可權:
chmod 777 [tomcat的上級目錄]
9.2. 設定tomcat5.0.28目錄下的所有檔案的屬主為tomcat:
chown -R tomcat [tomcat安裝目錄]
9.3. 設定所有tomcat5.0.28下的所有檔案和目錄的屬主(tomcat)具有讀寫執行許可權
chmod 700 -R /opt/tomcat5.0.28
10. bin目錄下的所有.sh檔案都應該設定執行許可權,命令為:
chmod 777 [檔案名稱]
11.可能是前一次執行./shutdown.sh檔案關閉tomcat時沒有停止已經啟動的java進程,而這個進程仍然在監聽tomcat所使用的連接埠,或者有另外一個tomcat正在運行,server.xml檔案中的監聽連接埠和當前tomcat衝突。
使用下面命令查看當前系統是否有正在監聽的連接埠(8080--webcache, 90--www或http).
11.1. 列出所有系統正在監聽的連接埠和綁定的地址netstat -l
11.2. 找出當前系統中的所有進程,管道符號過濾輸出顯示包含java字串的行
ps -A |grep java
輸出: pid tty time proc
1021 ? 00:00:00 java
11.3. 結束一個指定的進程:
kill [進程號]
11.4. 強制殺死一個進程:
kill -9 [進程號]
如果確定不是別的tomcat運行導致的衝突或者沒有java進程運行可以再次運行startup.sh檔案啟動tomcat
12
12.1. 編輯tomcat安裝目錄下的conf目錄下的server.xml檔案
vi server.xml
12.2. 尋找到tomcat資料庫使用者名稱稱參數一行:
/username
將
username
vcmtest
一段的value值更改資料庫的有效帳戶
12.3.尋找到tomcat資料庫使用者名稱稱參數一行:
/password
將
password
vcmtest
一段的password值更改資料庫的登入口令
12.4.尋找到tomcat資料庫使用者名稱稱參數一行:
/url
將
username
jdbc:oracle_clob:thin:@//192.168.9.6:1521/orcl.tcl.com
一段的value值更改資料庫的IP地址和Oracle資料庫的服務名稱為正確值。
12.5. 編輯tomcat安裝目錄下的bin目錄下的catalina.sh檔案
vi catalina.sh
12.6 尋找到tomcat記憶體參數一行:/ JAVA_OPTS
12.7. 將JAVA_OPTS="-Xms 1024m –Xmx 1520m"一行的兩個參數依據伺服器實際記憶體數量分別變更:
- Xms為tomcat啟動初始記憶體,一般為伺服器開機後可用空閑記憶體減去100兆
- Xmx為tomcat最大佔用記憶體,一般為伺服器開機後可用空閑記憶體減去50兆
說明:以上兩個參數關係到tomcat承受的訪問效能,但也要根據伺服器實際記憶體情況設定
12.8.編輯tomcat安裝目錄下的conf目錄下的server.xml檔案
vi server.xml
12.9. 尋找到tomcat記憶體參數一段:
/ maxThreads
12.10. 將maxThreads="450" minSpareThreads="100" maxSpareThreads="300"一段的三個參數依據伺服器實際記憶體數量分別變更:
maxThreads為tomcat最大線程數,一般可設定為400~800
minSpareThreads為tomcat最小共用線程數,一般可設定為100
maxSpareThreads為tomcat最大共用線程數,一般可設定為最大線程數減去50