Java 使用ajax请求发布大型JSON对象
我需要帮助在angularjs中使用ajax将大型JSON对象发布到服务器。当我使用post请求在Java 使用ajax请求发布大型JSON对象,java,ajax,spring-mvc,wildfly,Java,Ajax,Spring Mvc,Wildfly,我需要帮助在angularjs中使用ajax将大型JSON对象发布到服务器。当我使用post请求在ArrayList中发送包含大约10000条记录的JSON对象时,它会被接受并得到相同的响应。但当我上传30000条或更多记录并尝试使用ajax发送时,它会返回以下错误:- [io.undertow.request] (default task-5) UT005007: Request was not fully consumed 我怎样才能解决这个问题 我正在使用Wildfly 10和Java8
ArrayList
中发送包含大约10000条记录的JSON对象时,它会被接受并得到相同的响应。但当我上传30000条或更多记录并尝试使用ajax发送时,它会返回以下错误:-
[io.undertow.request] (default task-5) UT005007: Request was not fully consumed
我怎样才能解决这个问题
我正在使用Wildfly 10和Java8。是否有任何post size参数可以增加?您似乎正在使用它来接收post请求。检查设置中MAX\u ENTITY\u SIZE
选项的值是多少,可能是受到了限制:
请求实体的默认最大大小。如果实体正文大于此限制,则在读取请求时(对于固定长度请求,在第一次读取时,对于分块请求读取了太多数据),将在某个点抛出java.io.IOException
。此值只是默认大小,处理程序可以通过调用io.undertow.server.HttpServerExchange.setMaxEntitySize(long size)
为单个请求覆盖此值。默认为无限
正如本文中所建议的,可能在Spring中使用MultipartConfigFactory
bean进行配置:
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize("100MB");
factory.setMaxRequestSize("100MB");
return factory.createMultipartConfig();
}
@KarolDowbecki提出的建议可能会奏效,但还有另一种方法。在您正在使用的
standalone.xml
文件中,您可以更改为:
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>
这似乎是服务器为文件上传设置的最大限制。
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" max-post-size="16777216"/>
/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=max-post-size,value=16777216)