0

I'm getting a NoClassDefFoundError in a ServletException, in the second of these lines:

List items;
items = servlet_up.parseRequest(request);

I was looking for it, and from Why am I getting a NoClassDefFoundError in Java? I think I've understood the situation, but not the solution.

In how to fix NoClassDefFoundError in java Alvaro said that We can import the library that is missing to fix it, but since:

1.- I don't know which library is it for me (maybe the servlet-api.jar?)

2.- It's a JSP and not a Java Class (I mean, I don't compile it, so I don't know which jar is it using)

3.- Where should I put the jar at the end? In the ./lib/ folder of the JSP App?

So that's it, I don't really know how to proceed.

Thank you in advance!

Update: It's not a problem with List class, since the problem is in the second line where List has been already used.

Besides, I've the following imports:

<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="org.apache.commons.io.*" %>
<%@ page import="org.apache.commons.fileupload.*" %>
<%@ page import="org.apache.commons.fileupload.disk.*" %>
<%@ page import="org.apache.commons.fileupload.servlet.*" %>

Finally, what I'm getting at runtime is (I'll delete some lines that are comments on the code to make it shorter):

type Informe de Excepción
mensaje
descripción El servidor encontró un error interno () que hizo que no pudiera rellenar este requerimiento.
excepción

org.apache.jasper.JasperException: Ha sucedido una excepción al procesar la página JSP /uploadFile.jsp en línea 39

37:   ServletFileUpload servlet_up = new ServletFileUpload(file_factory);
39:   List items = servlet_up.parseRequest(request);

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:521)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:412)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

causa raíz

javax.servlet.ServletException: java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:865)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:794)
org.apache.jsp.uploadFile_jsp._jspService(uploadFile_jsp.java:137)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

causa raíz

java.lang.NoClassDefFoundError: org/apache/commons/io/IOUtils
org.apache.commons.fileupload.util.Streams.copy(Streams.java:123)
org.apache.commons.fileupload.util.Streams.copy(Streams.java:70)
org.apache.commons.fileupload.MultipartStream.readBodyData(MultipartStream.java:593)
org.apache.commons.fileupload.MultipartStream.discardBodyData(MultipartStream.java:617)
org.apache.commons.fileupload.MultipartStream.skipPreamble(MultipartStream.java:634)
org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:1023)
org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:1003)
org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:310)
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:334)
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115)
org.apache.jsp.uploadFile_jsp._jspService(uploadFile_jsp.java:97)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
Community
  • 1
  • 1
Btc Sources
  • 1,912
  • 2
  • 30
  • 58

1 Answers1

0

From your exception stack trace, it's clear that you're missing org/apache/commons/io/IOUtils class in Class Path. So add commons-io-2.4.jar (not necessarily 2.4, it can be any other version) to your WEB-INF/lib directory.

You can find all the JARs in Maven Repository here

Arkantos
  • 6,530
  • 2
  • 16
  • 36