本文共 3646 字,大约阅读时间需要 12 分钟。
说明:
1、200000单位为byte,并不是2MB,而是200KB,换算参考:
2、这个是表单提交后长度超过了200KB造成的,除了表单Form,还有URI等长度;这类解决问题都可以针对Jetty进行下手,配置相应的参数来记性解决。
3、如果请求经过了Nginx或者Apache这些,那么解决时要注意排查这些的影响。
错误:
java.lang.IllegalStateException: Form too large270468>200000 at org.mortbay.jetty.Request.extractParameters(Request.java:1561) at org.mortbay.jetty.Request.getParameterMap(Request.java:870) at org.apache.struts2.dispatcher.Dispatcher.createContextMap(Dispatcher.java:528) at org.apache.struts2.dispatcher.ng.PrepareOperations.createActionContext(PrepareOperations.java:78) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter.doFilter(StrutsPrepareFilter.java:74) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1212) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410) at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
解决方法:
1、普通Web项目:
先从这个参数入手maxFormContentSize
Jetty7:org.eclipse.jetty.server.Request.maxFormContentSize=-1Jetty6:org.mortbay.jetty.Request.maxFormContentSize=-1
-1表示不限制,2000000表示2MB的限制范围。
①在Jetty目录下找到jetty.xml中配置:
Jetty7:Jetty6: org.eclipse.jetty.server.Request.maxFormContentSize -1 org.mortbay.jetty.Request.maxFormContentSize -1
②在Web项目中的WEB-INF文件夹下新建一个jetty-web.xml文件
6000000
2、针对Maven的Jetty插件运行的配置
Maven Jetty Plugin 6.x或者可以使用运行时给出参数的方式进行设置 jetty:run -Dorg.mortbay.jetty.Request.maxFormContentSize=-1 Maven Jetty Plugin 7.x情况下 org.mortbay.jetty maven-jetty-plugin 6.1.25 org.mortbay.jetty.Request.maxFormContentSize -1 运行时参数方式jetty:run -Dorg.eclipse.jetty.server.Request.maxFormContentSize=-1 org.mortbay.jetty maven-jetty-plugin 6.1.25 org.eclipse.jetty.server.Request.maxFormContentSize -1
3、针对Spring Boot项目的配置
经过研究,无法指定这些参数,只需配置以下方式即可:
#POST表单长度限制(5MB)server.max-http-post-size=5000000
对于Spring Boot还有很多这类相关的参数,可以通过具体需要来配置。
参考:
==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==
转载地址:http://dfmpa.baihongyu.com/