FileUpload: DeferredFileOutputStream class not found? [duplicate]
-
27-10-2019 - |
Question
This question already has an answer here:
I'm using apache FileUpload to handle a.. file upload. I'm using it with jetty. The servlet sees the multipart request, but throws a NoClassDefFoundError exception upon execution:
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
...
throws:
java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream
at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
caused by:
java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream
Is there an additional jar we need to include besides commons-fileupload-1.2.2.jar?
My goal is to just upload a single file and write it to disk.
Thanks
Solution
You need to add CommonsIO to the classpath. Commons File Upload is dependent on it.
OTHER TIPS
Add the below dependency
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow