CentOS6.6
OpenJDK1.7.0.79.x86_64
Apache Tomcat/8.0.21
commons-fileupload-1.3.1
Eclipse:Luna Service Release 2 (4.4.2)
处理上传的代码:
doPost(xxx){
if(!ServletFileUpload.isMultipartContent(request)){
return;
}
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload();
upload.setFileItemFactory(factory); //此句有问题
}
现象:只要upload.setFileItemFactory(factory);这句参加编译(编译可以通过),在tomcat管理界面 (Tomcat Web Application Manager)去Reload(或Start)此工程,此工程就会加载失败。将此句去掉,则加载成 功。
应该从何处入手解决此问题?
查tomcat日志
tomcat日志文件在哪:tomcat/logs
按时间查到最后错误日志,定位到错误行:
Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory
在Eclipse的Libraries里是有这个类的。去工程/lib文件夹下查看,找不到“commons-fileupload-1.3.1.jar"这个包。复制进去,tomcat重新start此工程,成功。