我在调用使用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)
...
我已经针对此问题进行了Google搜索,并找到了一些鼓励修改服务器配置的帮助。我在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接受大量的帖子数据?
答案 0 :(得分:6)
打开Glass Fish管理控制台,选择
配置 - 服务器配置 - 网络配置 - 网络侦听器 - http-listener-1
和
标签HTTP。
参数最大帖子大小。根据需要增加它。 Look screenshot
答案 1 :(得分:0)
我的第一次尝试编写我的webservice是一个servlet,它通过HTTP的POST参数接受数据。当发送超过2MB时,这会导致“Post too large”错误。
我收到了将其编码为REST服务的建议。这很奇怪,但现在它的工作量超过2MB。即使数据是通过http post发送的。
也许它应该帮助别人。
但是我想知道,你可以在GF4服务器中设置maxPostSize值。