目的:将EXCEL文件上传到服务器,获取文件cell内容写入数据库
工具:JDK1.6.0.25, Eclipse, tomcat7.0.23,
jspsmartupload.jar用的是论坛下载的改掉中文乱码问题的版本。我把jspsmartupload.jar在项目->构建路径中加载了,同时放到 jdk1.6.0.25/jre/lib/ext/目录中(如果放在WEB_INFO/lib中运行时似乎找不到,所以所有的外部加载的.jar我都放在jre的ext目录了)。在server上运行,出现如下exception,请大侠帮忙分析问题在哪里。多谢了!org.apache.jasper.JasperException: javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/PageContext
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:455)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/servlet/jsp/PageContext
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:911)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:840)
org.apache.jsp.ImportDataNew_jsp._jspService(ImportDataNew_jsp.java:277)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause java.lang.NoClassDefFoundError: javax/servlet/jsp/PageContext
com.jspsmart.upload.SmartUpload.initialize(SmartUpload.java)
org.apache.jsp.ImportDataNew_jsp._jspService(ImportDataNew_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause java.lang.ClassNotFoundException: javax.servlet.jsp.PageContext
java.net.URLClassLoader$1.run(URLClassLoader.java:202)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:190)
sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
java.lang.ClassLoader.loadClass(ClassLoader.java:306)
java.lang.ClassLoader.loadClass(ClassLoader.java:247)
com.jspsmart.upload.SmartUpload.initialize(SmartUpload.java)
org.apache.jsp.ImportDataNew_jsp._jspService(ImportDataNew_jsp.java:123)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
我的ImportDataNew.jsp是这样写的:
<%@ page language="java" contentType="text/html; charset=gb2312"
    pageEncoding="gb2312"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@page import="java.sql.Connection"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.io.File"%>
<%@page import="java.io.FileNotFoundException"%>
<%@page import="java.io.IOException"%>
<%@page import="java.io.FileInputStream"%>
<%@page import="jxl.read.biff.BiffException"%>
<%@page import="java.io.InputStream"%>
<%@page import="keyclass.*"%>
<%@page import="jxl.*"%>
<%@page import="javax.servlet.*"%>
<%@page import="com.jspsmart.upload.*"%>
<%@page import= "javax.servlet.http.*"%> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>分析导入数据</title>
</head>
<body><%request.setCharacterEncoding("gb2312"); %>
<jsp:useBean id="su" class="com.jspsmart.upload.SmartUpload"/>
<pre>
<%


// com.jspsmart.upload.SmartUpload su = new com.jspsmart.upload.SmartUpload();
String   firstpath=request.getContextPath(); 
    String oldfilename=" ";
    String realpath=" ";
    String filetype=" ";
    long randomname = System.currentTimeMillis(); su.initialize(pageContext);
su.setAllowedFilesList("xls,XLS,xlsx,XLSX");
su.setMaxFileSize(2*1024*1024);
su.upload();

SmartFiles allfiles=su.getFiles();.......

解决方案 »

  1.   

    java.lang.NoClassDefFoundError:javax.servlet.jsp.PageContext
    这个类没有找到,楼主注意看异常信息啊,你是不是少了JSTLjar和standar.jar包啊。
      

  2.   

    不好意思,新手,对很多东西一知半解。我理解PageContext是JSP的内置对象参数不需要额外的jar包的,看来不是这么回事儿了?
      

  3.   

    能否指点我应该怎么查看是否少了JSTL.JAR, standard.jar包呢?多谢了!
      

  4.   

    我按照类似导入jxl.jar的方式导入了jstl.jar,standar.jar,不过还是出现相同的exception,各位大侠能否继续帮忙看看?谢谢