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