我在调用使用http-post编码的web服务时遇到了GF4问题。GF4以"Post too large"错误进行响应。我的帖子数据大约是3MB。
以下是GF4调试日志:
WARNING: Post too large
WARNING: StandardWrapperValve[obx2oex]: Servlet.service() for servlet obx2oex threw exception
java.lang.IllegalStateException: Post too large
at org.glassfish.grizzly.http.server.Request.parseRequestParameters(Request.java:2024)
at org.glassfish.grizzly.http.server.Request.getParameter(Request.java:1052)
at org.apache.catalina.connector.Request.getParameter(Request.java:1547)
at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:448)
...
我已经在谷歌上搜索了这个问题,并找到了一些鼓励修改服务器配置的帮助。我在domain.xml中编辑了以下部分:
<http-service>
<access-log></access-log>
<virtual-server id="server" network-listeners="http-listener-1,http-listener-2"></virtual-server>
<virtual-server id="__asadmin" network-listeners="admin-listener"></virtual-server>
<property name="maxPostSize" value="2097152"></property>
</http-service>
并重新启动服务器。但错误仍然存在。
有人知道如何解决这个"帖子太大"的问题吗?谢谢你的帮助!
PS:我刚刚看到GF4的启动日志,它告诉我:
警告:不支持的http服务属性maxPostSize将被忽略
那么,我应该在哪里告诉GF4接受大型发布数据呢?
打开Glass Fish管理控制台,选择
配置-服务器配置-网络配置-网络侦听器-http-listener-1
和
选项卡HTTP。
有一个参数最大Post大小。根据您的意愿增加它。查看屏幕截图
我第一次尝试对Web服务进行编码是一个servlet,它通过HTTP的POST参数接受数据。当发送超过2MB时,这会导致"Post too large"错误。
我得到了将其编码为REST服务的建议。这很奇怪,但现在它的工作容量超过2MB。即使数据是通过http post发送的。
也许它应该帮助一些人。
不过,我还是想知道,在GF4服务器中,在哪里可以设置maxPostSize值。