javax.servlet.ServletException:java.lang.NoClassDefFoundError:org / apache / commons / io / output / DeferredFileOutputStream

时间:2013-11-20 09:15:20

标签: java apache jsp

我正在尝试使用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)  

1 个答案:

答案 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之前为时已晚。