This question already has answers here:
How to solve this java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream?

(6个答案)


在4年前关闭。




我正在使用apache FileUpload来处理a ..文件上传。我正在和 jetty 一起使用它。 Servlet看到了多部分请求,但是在执行时抛出了NoClassDefFoundError异常:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException
{
  boolean isMultipart = ServletFileUpload.isMultipartContent(req);
  if (isMultipart) {
    try {
      FileItemFactory factory = new DiskFileItemFactory();

      ServletFileUpload upload = new ServletFileUpload(factory);

      List items = upload.parseRequest(req); //  exception
      ...

抛出:
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
   at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)

造成原因:
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream

除了commons-fileupload-1.2.2.jar之外,我们还需要包括其他jar吗?

我的目标是仅上传单个文件并将其写入磁盘。

谢谢

最佳答案

您需要将CommonsIO添加到类路径。 Commons File Upload依赖于此。

09-30 17:03
查看更多