2015-03-07 3 views
0

Я получаю NoClassDefFoundError в ServletException, во второй из этих строк:NoClassDefFoundError в JSP

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

Я искал его, и от Why am I getting a NoClassDefFoundError in Java? я думаю, что я понял ситуацию, но не решение.

В how to fix NoClassDefFoundError in java Альваро говорит, что мы можем импортировать библиотеку, которая отсутствует, чтобы исправить это, но так как:

1.- Я не знаю, какая библиотека для меня (может быть, сервлет-api.jar ?)

2.- это JSP, а не Java Class (я имею в виду, я не скомпилировать его, так что я не знаю, какая баночка его с помощью)

3.- Где я должен положить банку в конце? В папке ./lib/ приложения JSP?

Так вот, я не знаю, как действовать дальше.

Спасибо заранее!

Обновление: Это не проблема с классом List, так как проблема находится во второй строке, где List уже используется.

Кроме того, у меня есть следующий импорт:

<%@ 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.*" %> 

Наконец, что я получаю во время выполнения (я удалю некоторые строки, которые комментируют код, чтобы сделать его короче):

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) 
+1

Вы можете добавить точный след исключения на ваш вопрос :)? – Arkantos

+0

Добавлен импорт и трассировка стека. Спасибо за вашу помощь! –

+0

Вы должны поместить свой JAR, содержащий 'IOUtils' внутри папки WEB-INF/lib – Arkantos

ответ

0

Из вашей трассировки стека исключений ясно, что в классе Path отсутствует класс org/apache/commons/io/IOUtils. Поэтому добавьте commons-io-2.4.jar (не обязательно 2.4, это может быть любая другая версия) в ваш каталог WEB-INF/lib.

Вы можете найти все баночки в Maven Repository here

Смежные вопросы