这个问题困扰我好久了一直没有找到解决方法,先记录下来。
生产环境(简称A)上老是出错,而测试环境(简称B)一切正常。
我们的框架是JAVA语言编写,基于struts1技术总监自己搭的框架,我在struts-config.xml里面已经配置了最大size,如下:
<controller nocache="true" inputForward="true" maxFileSize="500M" />
刚才在B上再次进行了测试,把maxFileSize改成了2M,发现大于2M,就会报封装对象的files为null,而小于2M正常,说明B(程序部署在tomcat5.5.25上)一切没有问题的。
而前些日子测试了本地+weblogic,本地+tomcat,生产+weblogic的结果如下:
访问A,然后上传附件,点击保存增加,报错如下:
javax.servlet.ServletException: org.apache.commons.fileupload.FileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
A是Weblogic,B是Tomcat,同样的代码,B上毫无问题,A上就报错了。
搜了百度,google。了解到出现这种异常的原因:“应该是你而是由于上传以后,关闭了窗口或者刷新页面,导致了上传异常”,“该异常属于内部代码未处理异常,暂时无法对其进行捕获处理”。而我这个如果出错的话,理所应当在A环境和B坏境都要出错。我初步怀疑是工程部署在tomcat和weblogic差别所致。