啓動Tomcat報錯:JasperException: java.lang.ClassNotFoundException

Ubuntu安裝後啓動tomcat9,打開測試網址127.0.0.1:8080,報錯500。
[在 HTTP 協議中,500 Internal Server Error 是表示服務器端錯誤的響應狀態碼,意味着所請求的服務器遇到意外的情況並阻止其執行請求].


Type異常報告:

消息 org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

描述 服務器遇到一個意外的情況,阻止它完成請求。



Exception

org.apache.jasper.JasperException: org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:604)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:422)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Root Cause

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:198)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:413)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

Root Cause

java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
    java.net.URLClassLoader.findClass(java.base@9-internal/URLClassLoader.java:384)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
    org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:59)
    org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:193)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:413)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)

自jdk9開始不再綁定jre,而安裝jdk9時卻配置了jre相關選項(即“JRE_HOME”),以致Java環境配置出現問題,牽連到tomcat環境配置,因此又重裝及配置jdk和tomcat。

下載的是jdk10和tomcat9

講一下二者的配置。

jdk&tomcat

sudo typora /etc/profile

末尾錄入:

export JAVA_HOME=/usr/lib/jdk10 #視具體路徑

export CATALINA_HOME=/opt/tomcat9 #視具體路徑

export CLASSPATH=.:${JAVA_HOME}/lib:${CATALINA_HOME}/lib

export PATH=.:${JAVA_HOME}/bin:$PATH

export PATH=.:${CATALINA_HOME}/bin:$PATH

錄入完畢,保存退出。

sudo ~/.bashrc #使修改的配置立刻生效

#### tomcat
sudo typora /opt/tomcat9/bin/startup.sh

exec "$PRGDIR"/"$EXECUTABLE" start "$@"之前添加:

JAVA_HOME=/usr/lib/jdk10
PATH=${JAVA_HOME}/bin:$PATH 
CLASSPATH=.:${JAVA_HOME}/lib   
CATALINA_HOME=/opt/tomcat9

保存退出,輸入:

sudo ~/.bashrc

在 shutdown.sh 也如此炮製。

最後打開http://localhost:8080/
連接成功。

總結:
無需配置JRE_HOME環境變量,僅配置JAVA_HOME環境變量即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章