启动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环境变量即可。

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