Java 使用commons文件上载时出现NoClassDefFoundError

Java 使用commons文件上载时出现NoClassDefFoundError,java,jboss,struts-1,apache-commons-fileupload,apache-commons-io,Java,Jboss,Struts 1,Apache Commons Fileupload,Apache Commons Io,我使用commons-fileupload-1.1.1和commons-io-1.3.2在java 6的web应用程序中上载/下载文件。 在localhost中,它运行正常,因为我的lib(server\default\lib)中有2个jar(我使用JBoss4) 在服务器中部署应用程序时,尝试上载/下载文件时出现异常: java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException local

我使用commons-fileupload-1.1.1和commons-io-1.3.2在java 6的web应用程序中上载/下载文件。 在localhost中,它运行正常,因为我的lib(server\default\lib)中有2个jar(我使用JBoss4)

在服务器中部署应用程序时,尝试上载/下载文件时出现异常:

java.lang.NoClassDefFoundError: org/apache/commons/fileupload/FileUploadException
localhost和服务器之间的一个区别是:在服务器中,我没有2个jar

当我更改项目的类路径并添加两个JAR时,我部署应用程序-->我有相同的异常


有什么建议吗?

有两种方法:

  • 特定于应用程序:在项目的
    WEB-INF/lib
    文件夹中添加2个JAR,构建项目并部署
  • 或者,尝试
    JBOSS\u 4\u AS\server\all\lib
    文件夹。这样,部署在JBoss4应用服务器中的所有应用程序都可以看到2个JAR

  • 我希望这有帮助。

    如果类不在您的类路径中,您将得到一个
    ClassNotFoundException
    。您得到的是一个通常具有误导性的
    NoClassDefFoundError
    。可能是由于另一个引用类上的静态初始值设定项出错而失败。@jgitter,我想你是在颠倒二者:我不认为我是Tom。@Tom你的链接问题实际上证实了我所说的,它只是更深入了。我已经测试了第一个解决方案,但它不起作用(相同的异常),这正常吗?第二个解决方案有效,但我想了解为什么第一个解决方案无效。我不知道。我不知道你是否使用了完全相同的JAR来构建你的项目。
    NoClassDefFoundError
    表示您的代码已编译,但运行时
    ClassLoader
    无法找到类文件。有各种各样的因素,除非你告诉我们你用什么JAR编译,你用什么JDK版本编译,JBoss运行的JDK版本,如果在代码或JBoss lib文件夹中的任何地方都有类似的commons fileupload和commons io JAR,否则我们无法确定。我使用java 6和jboss4。