java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream(转)

时间:2022-09-28 12:01:56

java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream

使用Tomcat的Manager部署servlet是出现java.lang.NoClassDefFoundError异常的解决方法Tue, 11/04/2008 - 10:44 — Fuller

使用Tomcat的Manager部署应用程序(servlet)时,可能会出现以下异常(视Tomcat版本):

javax.servlet.ServletException: Servlet execution threw an exception...java.lang.NoClassDefFoundError: org/apache/commons/io/output/DeferredFileOutputStream...java.lang.ClassNotFoundException: org.apache.commons.io.output.DeferredFileOutputStream...

详细原因分析可以参见,简而言之,是因为当commons-fileupload包从版本1.0升到1.1时,DeferredFileOutputStream.class被移走了。如果Tomcat使用1.1及其以上版本,你得为它找到这个类。


解决方法

进入目录:$CATALINA/server/webapps/manager/WEB-INF/lib,检查是否存在三个包:

  • commons-io
  • catalina-manager.jar
  • commons-fileupload.jar

如果缺少commons-io,拷一个过来。

或者直接使用老版本的commons-fileupload.jar