Tomcat9部署jsp产生错误FileCountLimitExceededException
Tomcat9部署jsp产生错误FileCountLimitExceededException
- 1 文件上传问题(Tomcat9)
永远保持好奇心!!!解决难题!!!
1 文件上传问题(Tomcat9)
业务背景: jsp开发的页面,使用的是war部署到Tomcat上,这个页面就是进行了单个文件的上传
下面是错误信息(黏贴的部分信息)
2025-06-30 12:32:16.329 ERROR --- [http-nio-80-exec-18] c.j.m.c.e.UnifiedExceptionhandler : Failed to parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:124)2025-06-30 12:32:17.704 ERROR --- [http-nio-80-exec-23] c.j.m.c.e.UnifiedExceptionhandler : Failed to parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachmentat org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:124)at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:115)at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.<init>(StandardMultipartHttpServletRequest.java:88)at org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:122)at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1205)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)at javax.servlet.http.HttpServlet.service(HttpServlet.java:555)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:199)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:168)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:144)at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)
很明显错误信息是 Failed to parse multipart servlet request; nested exception is org.apache.tomcat.util.http.fileupload.impl.FileCountLimitExceededException: attachment
文件上传的个数收到了限制,于是博主在百度一顿乱搜,出来的都是size大小收到了限制
但是在项目的yml中配置的大小是100M 上传的文档又不会超过100
最后发现问题
Tomcat9(其他的版本没有试过)对于file类型提交时候的个数有限制,默认是10个,这个10个不管是不是文件类型的都存算,由于这个页面中的参数多达33个 于是乎就报错了文件个数受限制
从Tomcat 的版本配置中开始查找参数配置
地址:https://tomcat.apache.org/tomcat-9.0-doc/config/http.html
直接修改 Tomcat的conf server.xml 配置maxPartCount
<Connector port="8080" protocol="HTTP/1.1"connectionTimeout="20000"redirectPort="8443"maxPartCount="200" />
同样的疑问,为啥有了maxParaterCount还需要maxpartCount(AI解释如下)
然后直接重启Tomcat 问题就解决了