首页 新闻 会员 周边

web项目运行tomcatjsp报错怎么解决

0
[待解决问题]

500-内部服务器错误
类型 异常报告

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

描述 服务器遇到一个意外的情况,阻止它完成请求。

例外情况

org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:196)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:383)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:331)
javax.servlet.http.HttpServlet.service(HttpServlet.java:583)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
根本原因。

java.lang.ClassNotFoundException: org.apache.jsp.index_jsp
java.net.URLClassLoader.findClass(URLClassLoader.java:387)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:129)
org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:58)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:191)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:383)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:331)
javax.servlet.http.HttpServlet.service(HttpServlet.java:583)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
index.jsp内容:
<%@ page contentType="text/html;charset=utf-8" %>

<jsp:useBean id="rad" class="sun.hebtu.Circle" scope="request"/>

<HTML>

<body>

<form action="" method="post" >

<h1>输入圆的半径,求圆的面积和周长</h1>

半径:<input type=text name="radius" >

<input type=submit value="提交">

</form>

<jsp:setProperty name="rad" property="*"/>

圆的半径是:

<jsp:getProperty name="rad" property="radius"/><br>

这个半径能构成一个圆吗?

<jsp:getProperty name="rad" property="circle"/><br>

面积是:

<jsp:getProperty name="rad" property="area"/>

周长是:

<jsp:getProperty name="rad" property="girth"/>

</body>

</HTML>

Circle.java内容:
package org.example;

//求圆面积的Circle类

public class Circle {

double radius=0,girth=0; //半径,面积,周长

double PI=3.145926;

boolean circle;

double area=0;



public double getArea() {//求面积

    if(isCircle()) {
        area=radius*radius*PI;
    }

    return area;

}

public void setRadius(double r) {

    radius=r;

}



public double getRadius() {

    return radius;

}



public double getGirth() { //求周长

    if(isCircle()) {
        girth=2*radius*PI;
    }

    return girth;

}



public boolean isCircle() {//判断是否为圆,半径大于0

    circle= radius > 0;

    return circle;

}

}

后端mm的主页 后端mm | 初学一级 | 园豆:4
提问于:2023-11-22 10:51
< >
分享
所有回答(2)
0

找不到类,导入了吗?

realzhangsan | 园豆:264 (菜鸟二级) | 2023-11-22 13:15

找不到什么类

支持(0) 反对(0) 后端mm | 园豆:4 (初学一级) | 2023-11-22 16:10

@后端mm: org.apache.jsp.index_jsp

支持(0) 反对(0) realzhangsan | 园豆:264 (菜鸟二级) | 2023-12-13 10:55
0

根据提供的信息,问题似乎是在运行JSP时无法找到org.apache.jsp.index_jsp类。这可能是因为编译器未能正确编译JSP文件,或者编译后的类文件未能正确加载。

以下是一些建议来解决这个问题:

确认编译器是否工作正常: 确保你的JSP文件能够被正确编译成Java类。你可以检查在Tomcat工作目录下的work\Catalina\localhost\你的项目名目录中是否生成了org\apache\jsp\index_jsp.class文件。

检查类路径配置: 确保你的项目的类路径(classpath)包含了编译后的类文件的路径。你可以在Tomcat的配置文件中检查这一点,确保相关的目录被正确添加到common.loader或shared.loader中。

检查JSP文件的目录结构: 确保你的JSP文件位于webapp目录下,并且相对于webapp目录的路径正确。在你的例子中,JSP文件似乎是放在根目录下的。

Copy code
WebRoot
├── WEB-INF
└── index.jsp
清除Tomcat工作目录: 尝试停止Tomcat服务,清空Tomcat的工作目录,然后重新启动。有时候工作目录中的旧文件可能导致问题。

检查Tomcat版本: 确保你使用的Tomcat版本与你的项目兼容。不同版本的Tomcat可能会有一些不同的配置。

检查Tomcat的日志: 查看Tomcat的日志文件(通常是catalina.out或catalina.log)以获取更多详细的错误信息,这可能有助于确定问题的根本原因。

检查Java版本: 确保你的项目和Tomcat都使用相同的Java版本。

通过逐步检查上述步骤,你应该能够找到问题所在并解决它。如果问题仍然存在,你可能需要提供更多的信息,例如Tomcat版本、项目结构等,以便更详细地分析问题。

Technologyforgood | 园豆:6790 (大侠五级) | 2023-11-22 21:43
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册