jetty form too large 怎么解决啊 怎么取消200000的限制

java.lang.IllegalStateException: Form too large: 2737882 > 200000

at org.eclipse.jetty.server.Request.extractFormParameters(Request.java:364)

at org.eclipse.jetty.server.Request.extractContentParameters(Request.java:302)

at org.eclipse.jetty.server.Request.extractParameters(Request.java:256)

at org.eclipse.jetty.server.Request.getParameterNames(Request.java:853)

at ws.platform.tools.ToolWeb.getParamMap(ToolWeb.java:104)

at ws.platform.handler.GlobalHandler.handle(GlobalHandler.java:53)

at com.jfinal.core.JFinalFilter.doFilter(JFinalFilter.java:72)

at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)

at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)

at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)

at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)

at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)

at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)

at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)

at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)

at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)

at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)

at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)

at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)

at org.eclipse.jetty.server.Server.handle(Server.java:497)

at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)

at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)

at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)

at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)

at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)


评论区

小风

2017-03-24 21:32

在线等

小风

2017-03-24 21:32

沙发

JFinal

2017-03-24 21:51

jetty 有个配置可以解除这个限制,找找想关的资料

JFinal

2017-03-24 21:52

这个限制应该是针对 GET 的,提交大数据量的时候使用 POST 请求即可

小风

2017-03-25 19:27

@JFinal 就是 post过来的

jianggr

2017-07-04 18:19

me.setMaxPostSize(maxPostSize); 应该是这个把

l745230

2017-07-04 19:11

正好遇到这个问题,图片转成base64提交到服务端,超过2M报错,me.setMaxPostSize(2000000); 设置后解决

sid

2017-08-12 11:24

@小风 楼下说setMaxPostSize的方法,试过了不可行,楼主最后解决了没有啊,百度都找不到

sid

2017-08-12 11:25

@sid 楼上说的。。。

sid

2017-08-12 11:30

l745230

2017-08-14 14:03

@sid
// JFinal修改Jetty MaxFormContentSize参数
if (JFinal.me().getServletContext().getClass().getName().equals("org.eclipse.jetty.webapp.WebAppContext$Context")) {
try {
ServletContext ctx = JFinal.me().getServletContext();
Method getContextHandler = ctx.getClass().getMethod("getContextHandler", null);
Object handler = getContextHandler.invoke(ctx, null);
Method setMax = handler.getClass().getMethod("setMaxFormContentSize", int.class);
setMax.invoke(handler, 1024 * 1024 * 100);
} catch (Exception e) {
e.printStackTrace();
}
}
放在afterJFinalStart()里

小风

2017-08-29 15:34

在 jettyServer 里面可以设置 的。 connector.setPort(port);
server.addConnector(connector);
webApp = new WebAppContext();
webApp.setThrowUnavailableOnStartupException(true); // 在启动过程中允许抛出异常终止启动并退出 JVM
webApp.setContextPath(context);
webApp.setResourceBase(webAppDir); // webApp.setWar(webAppDir);
webApp.setInitParameter("org.eclipse.jetty.servlet.Default.dirAllowed", "false");
webApp.setInitParameter("org.eclipse.jetty.servlet.Default.useFileMappedBuffer", "false"); // webApp.setInitParams(Collections.singletonMap("org.mortbay.jetty.servlet.Default.useFileMappedBuffer", "false"));
webApp.setMaxFormContentSize(1500000);//yf20170324

小风

2017-08-29 15:36

@sid com.jfinal.server.JettyServer这里110行

fmpoffice

2018-09-20 16:17

@l745230 谢谢分享,这个是什么原理啊?

热门反馈

扫码入社