2
14:55:23,465 ERROR [stderr] (default task-1) io.undertow.server.RequestTooBigException: UT000020: Connection terminated as request was larger than 209715200
14:55:23,465 ERROR [stderr] (default task-1)    at io.undertow.conduits.FixedLengthStreamSourceConduit.checkMaxSize(FixedLengthStreamSourceConduit.java:168)
14:55:23,465 ERROR [stderr] (default task-1)    at io.undertow.conduits.FixedLengthStreamSourceConduit.read(FixedLengthStreamSourceConduit.java:229)
14:55:23,465 ERROR [stderr] (default task-1)    at org.xnio.conduits.ConduitStreamSourceChannel.read(ConduitStreamSourceChannel.java:127)
14:55:23,465 ERROR [stderr] (default task-1)    at io.undertow.channels.DetachableStreamSourceChannel.read(DetachableStreamSourceChannel.java:209)
14:55:23,466 ERROR [stderr] (default task-1)    at io.undertow.server.HttpServerExchange$ReadDispatchChannel.read(HttpServerExchange.java:2337)
14:55:23,466 ERROR [stderr] (default task-1)    at org.xnio.channels.Channels.readBlocking(Channels.java:294)
14:55:23,466 ERROR [stderr] (default task-1)    at io.undertow.servlet.spec.ServletInputStreamImpl.readIntoBuffer(ServletInputStreamImpl.java:192)
14:55:23,466 ERROR [stderr] (default task-1)    at io.undertow.servlet.spec.ServletInputStreamImpl.read(ServletInputStreamImpl.java:168)
14:55:23,466 ERROR [stderr] (default task-1)    at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:1027)
14:55:23,466 ERROR [stderr] (default task-1)    at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:931)
14:55:23,466 ERROR [stderr] (default task-1)    at java.io.InputStream.read(InputStream.java:101)
14:55:23,466 ERROR [stderr] (default task-1)    at org.apache.commons.fileupload.util.Streams.copy(Streams.java:98)
14:55:23,467 ERROR [stderr] (default task-1)    at org.apache.commons.fileupload.util.Streams.copy(Streams.java:68)

这是standalone.xml 中的适当配置 其中max-post-size 设置为“1073741824”字节(需要1GB) 是否存在200MB 的基本限制? 通过在 Wildfly 服务器文件夹中搜索这个 209715200 的整个文件,我没有找到任何内容。

<subsystem xmlns="urn:jboss:domain:undertow:5.0">
            <buffer-cache name="default"/>
            <server name="default-server">
                <http-listener name="default" socket-binding="http" max-post-size="1073741824" redirect-socket="https" enable-http2="true" no-request-timeout="600000" />
                <https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
                <host name="default-host" alias="localhost">
                    <location name="/" handler="welcome-content"/>
                    <filter-ref name="server-header"/>
                    <filter-ref name="x-powered-by-header"/>
                    <http-invoker security-realm="ApplicationRealm"/>
                </host>
            </server>
            <servlet-container name="default">
                <jsp-config/>
                <websockets/>
            </servlet-container>
            <handlers>
                <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
            </handlers>
            <filters>
                <response-header name="server-header" header-name="Server" header-value="WildFly/11"/>
                <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
            </filters>
        </subsystem>
4

1 回答 1

1

有一个命令行界面(jboss server bin 文件夹)。使用该命令行更新大小是有效的。以下是设置它大约700MB以上的命令 在wildfly服务器bin文件夹中,因为我在Windows上,有一个jboss-cli.bat 如果我们运行它并连接,那么我们可以执行以下命令来设置它。/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=max-post-size,value=754857600)

我们也可以在没有任何参数的情况下执行读取属性来查看现在设置了什么

另一个疯狂的事情是这个项目使用了非常旧的 struts (1.3.x)。这个 struts 框架的默认文件上传大小限制为 250MB。由于整个互联网(和我自己)都忘记了 struts 1.x,这很难找到。无论如何,struts-config.xml 中的控制器设置有一个我们可以设置的 maxFileSize 设置。否则,默认大小为 250MB。<controller ... maxFileSize="750M" .../> 将覆盖默认值。

于 2020-08-03T19:53:50.533 回答