JSP中的NoClassDefFoundError [英] NoClassDefFoundError in JSP

查看:70
本文介绍了JSP中的NoClassDefFoundError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在这些行的第二行中,我在ServletException中遇到了NoClassDefFoundError:

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

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

我一直在寻找它,并且从为什么Java中的NoClassDefFoundError?我想我已经了解了这种情况,但没有解决方案.

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.

如何修复Java中的NoClassDefFoundError Alvaro说我们可以导入缺少修复该库的库,但是由于:

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

1.-我不知道它对我来说是哪个库(也许是servlet-api.jar?)

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

2.-这是一个JSP而不是Java类(我的意思是,我不编译它,所以我不知道它在使用哪个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.-我应该把罐子放在哪里?在JSP应用程序的 ./lib/文件夹中?

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.

提前谢谢!

更新: List 类不是问题,因为问题出在已经使用List的第二行.

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)

推荐答案

从您的异常堆栈跟踪中可以明显看出,您在类路径中缺少了 org/apache/commons/io/IOUtils 类.因此,将 commons-io-2.4.jar (不一定是2.4,可以是任何其他版本)添加到您的WEB-INF/lib目录中.

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.

您可以在Maven存储库中找到所有JAR,此处

You can find all the JARs in Maven Repository here

这篇关于JSP中的NoClassDefFoundError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆