weblogic Cannot parse POST parameters of request



<2016-2-24 上午10时50分54秒 CST> <Error> <HTTP> <BEA-101017> <[ServletContext@477594602[app:EAR module:web path:/web spec-version:2.5]] Root cause of ServletException.
weblogic.utils.NestedRuntimeException: Cannot parse POST parameters of request: '/web/material/reqplan/reqplan/queryRequirementList.sc'
at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.mergePostParams(ServletRequestImpl.java:2144)
at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.parseQueryParams(ServletRequestImpl.java:2024)
at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.getQueryParams(ServletRequestImpl.java:1918)
at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.getParameterNames(ServletRequestImpl.java:1953)
at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.access$900(ServletRequestImpl.java:1817)
Truncated. see log file for complete stacktrace
Caused By: java.net.ProtocolException: EOF after reading only: '0' of: '75' promised bytes, out of which at least: '0' were already buffered
at weblogic.servlet.internal.PostInputStream.complain(PostInputStream.java:93)
at weblogic.servlet.internal.PostInputStream.read(PostInputStream.java:179)
at weblogic.servlet.internal.ServletInputStreamImpl.read(ServletInputStreamImpl.java:228)
at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.mergePostParams(ServletRequestImpl.java:2118)
at weblogic.servlet.internal.ServletRequestImpl$RequestParameters.parseQueryParams(ServletRequestImpl.java:2024)
Truncated. see log file for complete stacktrace

<2016-2-24 上午10时50分54秒 CST> <Error> <Kernel> <BEA-000802> <ExecuteRequest failed
 java.lang.IllegalStateException: Response already committed.
java.lang.IllegalStateException: Response already committed
at weblogic.servlet.internal.ServletResponseImpl.objectIfCommitted(ServletResponseImpl.java:1608)
at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:626)
at weblogic.servlet.internal.ServletResponseImpl.sendError(ServletResponseImpl.java:591)
at weblogic.servlet.internal.ErrorManager.handleException(ErrorManager.java:150)
at weblogic.servlet.internal.WebAppServletContext.handleThrowableFromInvocation(WebAppServletContext.java:2348)
Truncated. see log file for complete stacktrace

As you say, there is an IE bug that may cause to send the post's header only. Well, this happens when a connection to the server times out, and IE tries to send a post through that connection. At first the post it is rejected, so it reopens that connection, and that's when IE sends only the header. So to solve this you have to make sure that no one else closes the connections with IE, except itself. In our case we only had to set a couple of timeouts above the IE's keep-alive one (which is 60 seconds by default):


Weblogic Console,POST默认的超时时间是30s;而IE对连接的保持时间是60s,也即IE认为连接还在,但实际上连接已经被Weblogic关了,导致后续用的时候就报错了。

解决方案:
在weblgoic的console中:xxDomain->Servers->xxServer->Protocols->HTTP  Post Timeout:30 默认为30,改为80
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值