java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory [英] java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory

查看:181
本文介绍了java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经遵循本教程,使用servlet进行文件上传。

I have followed this tutorial for using servlet for file upload.

这是文件夹结构(使用Eclipse创建的动态项目)。我不是在这个简单的项目中使用maven。我将外部jar添加到构建路径。

Here is the folder structure (Dynamic project created using Eclipse). I am NOT using maven for this simple project. I added the external jar to the build path.

当我启动Tomcat并通过右键单击Eclipse中的项目部署此应用程序>在服务器上运行我得到

when I start Tomcat and deploy this application by right-clicking on the project in Eclipse > Run on Server I get

Caused by: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileItemFactory
    at java.lang.Class.getDeclaredFields0(Native Method)
    at java.lang.Class.privateGetDeclaredFields(Class.java:2499)
    at java.lang.Class.getDeclaredFields(Class.java:1811)
    at org.apache.catalina.util.Introspection.getDeclaredFields(Introspection.java:106)
    at org.apache.catalina.startup.WebAnnotationSet.loadFieldsAnnotation(WebAnnotationSet.java:270)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:139)
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:65)
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:415)
    at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:892)
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5380)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 6 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
    ... 20 more

请帮助我这里发生了什么问题以及如何解决这个问题?

please help me with what is going wrong here and how to fix this?

推荐答案

您需要将所需的公共 jar复制到您的 / WEB-INF / / code>文件夹。

You need to copy the required commons jars into your /WEB-INF/lib folder as well.

commons-io-2.4.jar
commons-fileupload-1.3.1.jar

原因是只需将jar依赖项添加到Eclipse项目的构建路径即可使它们自动在Tomcat上可用。由于缺少依赖关系(在 lib 文件夹中找不到)您的Web应用程序的部署失败。

The reason is that just adding the jar dependencies to your Eclipse project's build path does not make them automatically available on Tomcat. Since, the dependencies are missing (not found in the lib folder) your web app's deployment fails.

这篇关于java.lang.ClassNotFoundException:org.apache.commons.fileupload.FileItemFactory的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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