从jsp调用java方法
我从jsp调用我的java方法,它给出了从jsp调用java方法,java,jsp,Java,Jsp,我从jsp调用我的java方法,它给出了NoClassDefFoundError:error 但是当我从main方法调用时,我的方法正在工作。 我在代码中使用了xlrdjar,并且还放置了jarlib文件夹。但它仍然会产生错误 异常跟踪: org.apache.jasper.JasperException: An exception occurred processing JSP page /exportDSD.jsp at line 20 17: //excel.getExcel()
NoClassDefFoundError:error
但是当我从main
方法调用时,我的方法正在工作。
我在代码中使用了xlrd
jar,并且还放置了jarlib文件夹。但它仍然会产生错误
异常跟踪:
org.apache.jasper.JasperException: An exception occurred processing JSP page /exportDSD.jsp at line 20
17: //excel.getExcel();
18:
19: Report r = new Report();
20: r.generateReport();
21:
22: System.out.println("Generated DSD");
23: %>
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
堆栈跟踪:
org.apache.jasper.JasperException: An exception occurred processing JSP page /exportDSD.jsp at line 20
17: //excel.getExcel();
18:
19: Report r = new Report();
20: r.generateReport();
21:
22: System.out.println("Generated DSD");
23: %>
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:568)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
根本原因:
javax.servlet.ServletException: java.lang.NoClassDefFoundError: xlrd/Workbook
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:916)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:845)
org.apache.jsp.exportDSD_jsp._jspService(exportDSD_jsp.java:107)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
我的代码:
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import xlrd.*;
public void generateReport() throws BiffException, ClassNotFoundException, SQLException, IOException {
... ...
}
我在jsp中这样调用:
<% Report r =new Report(); r.generateReport(); %>
显示JSP导入不正确:
Add jar in WEB-INF/lib
Add <%@ page import="xlrd.*" %> to the top of your JSP
在WEB-INF/lib中添加jar
添加到JSP的顶部
要导入多个类,请使用以下格式:
<%@ page import="com.sample.Report,xlrd.*" %>
显示JSP导入不正确:
Add jar in WEB-INF/lib
Add <%@ page import="xlrd.*" %> to the top of your JSP
在WEB-INF/lib中添加jar
添加到JSP的顶部
要导入多个类,请使用以下格式:
<%@ page import="com.sample.Report,xlrd.*" %>
问题在于某个jar中包含工作簿的jar。把它放在WEB-INF/lib文件夹中。我不认为,这也需要包含在JSP中。问题在于jar在某个jar中包含工作簿。把它放在WEB-INF/lib文件夹中。我认为,这也不需要包含在JSP中。NoClassDefFoundError
是一个JVM错误,这意味着JVM或类加载器无法加载类定义。这意味着找到了类,但由于某种原因JVM或类加载器无法加载类定义。java.lang.NoClassDefFoundError:xlrd/Workbook
并不意味着找不到类,如果是这种情况,您会得到ClassNotFoundException
。相反,找到了类文件,但JVM无法加载类定义
对于
NoClassDefFoundError
您可以检查xlrd/Workbook
的源代码,如果它包含引用某个类的静态块或成员,而该类在运行时不存在或导致问题。NoClassDefFoundError
是一个JVM错误,这意味着JVM或类加载器无法加载该类定义。这意味着找到了类,但由于某种原因JVM或类加载器无法加载类定义。java.lang.NoClassDefFoundError:xlrd/Workbook
并不意味着找不到类,如果是这种情况,您会得到ClassNotFoundException
。相反,找到了类文件,但JVM无法加载类定义
对于
NoClassDefFoundError
,您可以检查xlrd/工作簿的源代码是否包含引用某个类的静态块或成员,该类在运行时不存在或导致问题。以下是我的代码:import org.apache.poi.hssf.usermodel.HSSFCell;导入org.apache.poi.hssf.usermodel.HSSFCellStyle;导入org.apache.poi.hssf.usermodel.HSSFDataFormat;导入org.apache.poi.hssf.usermodel.HSSFRow;导入org.apache.poi.hssf.usermodel.HSSFSheet;导入org.apache.poi.hssf.usermodel.HSSFWorkbook;进口xlrd.*;public void generateReport()从jsp中抛出biffeException、ClassNotFoundException、SQLException、IOException{……},我是这样调用的:请使用编辑函数将代码添加到问题中。不是作为评论。我看不懂你的代码。在ques中发布(格式化)共享您的jsp代码…可能是导入而不是更正这些是我在jsp中的导入这里是我的代码:import org.apache.poi.hssf.usermodel.HSSFCell;导入org.apache.poi.hssf.usermodel.HSSFCellStyle;导入org.apache.poi.hssf.usermodel.HSSFDataFormat;导入org.apache.poi.hssf.usermodel.HSSFRow;导入org.apache.poi.hssf.usermodel.HSSFSheet;导入org.apache.poi.hssf.usermodel.HSSFWorkbook;进口xlrd.*;public void generateReport()从jsp中抛出biffeException、ClassNotFoundException、SQLException、IOException{……},我是这样调用的:请使用编辑函数将代码添加到问题中。不是作为评论。我看不懂你的代码。在ques中发布(格式化)共享您的jsp代码…可能是导入而不是更正这些是我在jsp中的导入