一:今天在使用struts2做文件上传时出现了该异常:

警告: Unable to parse request
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (5897994) exceeds the configured maximum (2097152)at org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.<init>(FileUploadBase.java:937)at org.apache.commons.fileupload.FileUploadBase.getItemIterator(FileUploadBase.java:331)at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:351)at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parseRequest(JakartaMultiPartRequest.java:151)at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.processUpload(JakartaMultiPartRequest.java:90)at org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest.parse(JakartaMultiPartRequest.java:80)at org.apache.struts2.dispatcher.multipart.MultiPartRequestWrapper.<init>(MultiPartRequestWrapper.java:75)at org.apache.struts2.dispatcher.Dispatcher.wrapRequest(Dispatcher.java:753)at org.apache.struts2.dispatcher.ng.PrepareOperations.wrapRequest(PrepareOperations.java:140)at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:83)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)at java.lang.Thread.run(Unknown Source)
2014-7-31 22:53:04 com.opensymphony.xwork2.util.logging.commons.CommonsLogger warn
警告: the request was rejected because its size (5897994) exceeds the configured maximum (2097152)

为什么会出现这个错误?

查看struts.properties中有这么一句struts.multipart.parser=Jakarta,实际上这一句也可以不写因为这是struts2为了支持文件上传默认的。那么这个Jakarta到底是什么东西呢?实际上Jakarta实际上就是org.apache.struts2.dispatcher.multipart.JakartaMultiPartRequest类。打开JakartaMultiPartRequest.java的源代码你会发现这个类实现了MultiPartRequest接口,在这个类封装了对底层ServletFileUpload的操作,由于common-fileupload组件默认最大支持上传文件的大小为2M,当我们上传大于2M的文件时,就会出现上面的异常。是这个异常的发生导致了fileUpload拦截器没有机会执行,所以看到的是页面没有任何变化,也没有任何提示信息,只是在控制台打印出了上面的异常。解决的办法在struts.properties文件中把struts.multipart.maxSize设置成一个比较大的值,也是就说maxSize远远要大于可能上传文件的大小和fileUpload拦截器中maxinumSize的值。 如可以配置:struts.multipart.maxSize=10000000 即可。

默认的在struts中的default.properties中有这句话:struts.multipart.maxSize=2097152 将上传文件限制为2MB

我的配置是:在struts.xml中加入<constant name="struts.multipart.maxSize" value="524288000" />将默认的上传文件最大值变成500MB

Web容器启动的时候加载文件的时候先加载default.properties,然后再加载struts.xml配置文件。

org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException:相关推荐

  1. Java 文件上传组件 Apache Commons FileUpload 应用指南(二)——FileUpload如何工作?

    在最初的 http 协议中,没有上传文件方面的功能.RFC1867("Form-based File Upload in HTML".) 为 http 协议添加了这个功能.客户端的 ...

  2. Apache Commons Fileupload 漏洞,可恶意操作文件

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | spoock 来源 | https://tinyurl.com/y34djpar ...

  3. Apache Commons fileUpload实现文件上传

    Apache的commons-fileupload.jar可方便的实现文件的上传功能,本文通过实例来介绍如何使用commons-fileupload.jar. @author:ZJ 07-2-22 B ...

  4. Spring MVC-09循序渐进之文件上传(基于Apache Commons FileUpload)

    概述 客户端编程 MultipartFile接口 利用Commons FileUpload上传文件 Domain类 控制器 配置文件 JSP页面 部署及测试 源码 概述 Servlet出现之前,文件上 ...

  5. Java Web——文件上传(Apache Commons FileUpload实现上传图片DEMO)

    基本概念 Apache Commons FileUpload :Apache Commons FileUpload组件提供了一种简单而灵活的方法,可以将对多部分文件上传功能的支持添加到Servlet和 ...

  6. 【报错笔记】使用MultipartFile 出现异常:java.lang.ClassNotFoundException: org.apache.commons.fileupload...

    使用MultipartFile出现异常:java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileItemFactory ...

  7. 文件上传之Apache commons fileupload使用

    文件上传的方法主要目前有两个常用的,一个是SmartUpload,一个是Apache的Commons fileupload. 我们这里主要介绍下第二个的用法,首先要上传文件,注意几个问题: 1 for ...

  8. fckeditor异常总结---org.apache.commons.fileupload.FileUploadException

    a.java.lang.ClassNotFoundException:          org.apache.commons.fileupload.FileUploadException       ...

  9. org.apache.commons.fileupload.DiskFileUpload使用上

    1.setSizeMax方法 setSizeMax方法用于设置请求消息实体内容的最大允许大小,以防止客户端故意通过上传特大的文件来塞满服务器端的存储空间,单位为字节. 2.setSizeThresho ...

最新文章

  1. MIT学神、「太极」作者胡渊鸣送你一门计算机图形学课程
  2. Python 正在从简明转向臃肿,从实用转向媚俗
  3. shell脚本的执行方式及区别
  4. php能力模型,ThinkPHP5--基础篇(模型)
  5. C# winform post请求数据
  6. 基于QGIS初探PostgreSQL的PostGIS插件,包括YUM和编译安装PostGIS
  7. python引入模块教程_python进阶教程之模块(module)介绍
  8. 什么是全兼容?DVD主流格式全面解析
  9. Failed to connect to bitbucket.org port 443: Operation timed out
  10. spark 查看 job history 日志
  11. Web全栈工程师应该会什么
  12. 最新版计算机应用基础,计算机应用基础课件(最新版)
  13. bash+vasp+vaspkit能量应变计算弹性常数
  14. UVM糖果爱好者教程 - 22. Phasing
  15. html5辨别音高,音理知识基础:音高和时值
  16. 关于ONVIF协议你不得不知的6个常见问题
  17. org.hibernate.hql.internal.ast.QuerySyntaxException错误原因
  18. 时间序列分析之AR、MA、ARMA、ARIMA详解(1)
  19. 微信小程序:税改计算器,1秒计算税改前后你能多拿多少工资。
  20. CorelDraw应该怎么样才能学好描图技巧看看这个就能懂

热门文章

  1. kill 进程_结束进程,查看后台进程
  2. threejs向量夹角和夹角方向
  3. zookeeper 密码_阿里资深JAVA架构带你深度剖析dubbo和zookeeper关系
  4. esxi usb插口_酷暑大作战 | USB-C风扇新体验
  5. java map 实现 序列化,MapReduce序列化
  6. post postman 传递数组对象_如何使用postman做接口测试
  7. android电梯程序设计,课内资源 - 基于Android实现的电梯调度模拟
  8. python免费学校_清华大学,的python学习路线,免费分享给小白福利
  9. python开发应用程序错误_Python 程序员经常犯的 10 个错误
  10. 【转】深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第三节 栈与堆,值类型与引用类型