形式太大例外

Nar*_*nvd 28 java jetty

当我使用post请求发送大文件时,系统显示异常:

java.lang.IllegalStateException: Form too large1105723>200000
at org.mortbay.jetty.Request.extractParameters(Request.java:1404)
at org.mortbay.jetty.Request.getParameter(Request.java:749)......
Run Code Online (Sandbox Code Playgroud)

当我在谷歌搜索帮助时,他们会提供一些帮助,例如, webappcontext.setMaxFormContentSize(5000000);

我正在使用此代码但问题仍未解决

我也在使用代码 jettyServer.setAttribute("org.mortbay.jetty.Request.maxFormContentSize", 5000000);

但没有结果

注意: - 我正在使用Jetty-6.1.0

Jig*_*shi 34

尝试通过设置系统属性 jetty.xml

    <Call class="java.lang.System" name="setProperty">
      <Arg>org.mortbay.jetty.Request.maxFormContentSize</Arg>
      <Arg>500000</Arg>
    </Call>
Run Code Online (Sandbox Code Playgroud)

好的,你可以从你的网络应用程序配置它

在Web应用程序中添加WEB-INF/jetty-web.xml文件,并在该文件中配置参数:

  <?xml version="1.0"?>
  <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN"
  "http://jetty.mortbay.org/configure.dtd">

  <Configure id="WebAppContext" class="org.mortbay.jetty.webapp.WebAppContext">
          <Set name="maxFormContentSize" type="int">600000</Set>
  </Configure>
Run Code Online (Sandbox Code Playgroud)

文献

版本7或更高版本

从版本7开始,Jetty的类已经转移到另一个包中.您必须更换org.mortbay...org.eclipse...(感谢David他的评论).

  • 在maven jetty插件中:<webAppConfig> <maxFormContentSize> 500000 </ maxFormContentSize> </ webAppConfig> (2认同)

小智 10

import org.mortbay.jetty.Server;
//... other code here...//
int port = 8080;
Server server = new Server(port);
server.setAttribute("org.mortbay.jetty.Request.maxFormContentSize", -1);
Run Code Online (Sandbox Code Playgroud)

这段代码适用于我正在使用的jetty 6.0.2.
大小"-1"表示表单没有限制我试图发布一个大的20,000,000字节的表单,我没有问题.
对于Jetty(jetty 7)的eclipse版本,您必须使用以下代码:

import org.eclipse.jetty.server.Server;
//... other code here...//
int port = 8080;
Server server = new Server(port);
server.setAttribute("org.eclipse.jetty.server.Request.maxFormContentSize", -1);
Run Code Online (Sandbox Code Playgroud)


set*_*eth 5

不幸的是,我无法对jetty.xml进行任何更改,所以我只是设置一些选项来调整maxFormContentSize,如下所示:

JVM_OPTS="$JVM_OPTS -Dorg.eclipse.jetty.server.Request.maxFormContentSize=5000000"
Run Code Online (Sandbox Code Playgroud)

这存在于我们用于启动Solr实例的shell脚本中.