weblogic Cannot parse POST parameters of request
2016-02-24 18:10
1876 查看
<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
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
相关文章推荐
- 【性能为王】从PHP源码剖析array_keys和array_unique
- UISegmentController边框改变
- ${pageContext.request.contextPath}的作用
- 404 Not Found The requested URL * was not found on this server
- ArrayBlockingQueue和LinkedBlockingQueue
- 42.Which three statements are true regarding views? (Choose three.)
- easyui学习
- UGUI UI框架实现遇到的问题
- Rescue(宽搜问题)
- Vickate_代码手写,xib和StoryBoard间的博弈和Interface Builder技巧
- TC SRM 682 DNASequence
- Invalid Bundle. iPad multimasking support requires launch story board in bundle
- UGUI点击事件(多个)
- 41.Which two statements are true regarding views? (Choose two.)
- 效果类似于label从下往上滑(采用uiTableView实现)
- UITableViewCell为什么要复用
- while(true)
- 【转载】Hadoop可视化分析利器之Hue
- UITableView小技巧--实现cell向左滑动删除,编辑等功能
- 第一章 遇见HADOOP 第五节 写其它系统比较(hadoop:the definitive guide)