我正在尝试使用JSP上传文件,我得到了错误
org.apache.jasper.JasperException:
在第31行处理JSP页面/upload.jsp
时发生异常
28: upload.setSizeMax( maxFileSize );
29: try{
30: // Parse the request to get file items.
31: List fileItems = upload.parseRequest(request);
32:
33: // Process the uploaded file items
34: Iterator i = fileItems.iterator();
我得到的例外是:
javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:912)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:841)
org.apache.jsp.upload_jsp._jspService(upload_jsp.java:154)
答案 0 :(得分:1)
java.lang.NoClassDefFoundError:org / apache / commons / io / output / DeferredFileOutputStream
这意味着webapp的运行时类路径中缺少所提到的类。随着包名称的提示,它是Apache Commons IO的一部分。您需要download包含二进制JAR的zip文件,将其解压缩,然后将commons-io.jar
放在您的webapp的/WEB-INF/lib
文件夹中,以及您应该已经拥有的commons-fileupload.jar
在webapp的/lib
中拥有commons-fileupload.jar
时,不将其放入Tomcat的/WEB-INF/lib
。 不在项目的构建路径设置中进行操作。只需将两个JAR放在webapp的/WEB-INF/lib
中,就可以全部设置。
无关具体问题,Java代码不属于JSP文件。它属于Java类。现在是时候学习如何创建和使用servlets之前为时已晚。