System.Web.HttpException:超出最大请求长度

时间:2015-08-10 08:03:05

标签: jsp java-ee servlets resin

我超越了异常。我尝试了很多来自SO的解决方案,但这些解决方案都不起作用,因为大多数都是asp.net

这是我的网络应用的web.xml的一部分:

<servlet>
    <servlet-name>MainPageServlet</servlet-name>
    <servlet-class>servlets.MainPageServlet</servlet-class>
    <multipart-config>
        <!-- 10MB of files -->
        <max-file-size>10485760B</max-file-size>
        <!-- 10KB of form data -->
        <max-request-size>10240B</max-request-size>
        <!-- Buffer to disk over 512KB -->
        <file-size-threshold>524288B</file-size-threshold>
    </multipart-config>
</servlet>
<servlet-mapping>
    <servlet-name>MainPageServlet</servlet-name>
    <url-pattern>/mainPage/*</url-pattern>
</servlet-mapping>

这是我得到的错误(在http post文件上传后的浏览器中):

   [HttpException (0x80004005): Maximum request length exceeded.]
   System.Web.HttpRequest.GetEntireRawContent() +9685979
   System.Web.HttpRequest.get_InputStream() +41
   Caucho.IIS.ResinHandler.DoHmux(HttpContext context) +138
   Caucho.IIS.ResinHandler.ProcessRequest(HttpContext context) +334
   System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +341
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +69

该文件包含5,2Mb

知道我应该在哪里设置最大文件大小?正如您在web.xml中设置它时,您可能会发现它不起作用。

我正在使用resin java服务器。

当我在大小值java IDE抱怨之后添加'B'作为Bytes时。但是,如果不存在,我收到此错误:

500 Servlet exception
WEB-INF/web.xml:29: com.caucho.server.dispatch.MultipartConfigImpl.setMaxFileSize():
com.caucho.config.types.Bytes.addText(): byte-valued expression `10485760'
must have units.  '16B' for bytes, '16K' for kilobytes, '16M' for megabytes,
'16G' for gigabytes.

1 个答案:

答案 0 :(得分:0)

max-request-size不是表单数据的最大大小,它是整个上传请求的最大大小。

看看: https://docs.oracle.com/javaee/7/tutorial/servlets011.htm 17.11.1

在您的情况下,请将max-request-size设置为大于5.2MB