Error finishing response ArrayIndexOutOfBoundsException 8192

Sep 10, 2016 10:45:15 AM org.apache.catalina.connector.CoyoteAdapter service
SEVERE: An exception or error occurred in the container during the request processing
java.lang.ArrayIndexOutOfBoundsException: 8192
        at org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:522)
        at org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:429)
        at org.apache.coyote.http11.AbstractOutputBuffer.sendHeader(AbstractOutputBuffer.java:395)
        at org.apache.coyote.http11.AbstractHttp11Processor.prepareResponse(AbstractHttp11Processor.java:959)
        at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:739)
        at org.apache.coyote.Response.action(Response.java:170)
        at org.apache.coyote.Response.sendHeaders(Response.java:350)
        at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:315)
        at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:275)
        at org.apache.catalina.connector.Response.finishResponse(Response.java:501)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:420)
        at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:392)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:357)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1584)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Sep 10, 2016 10:45:15 AM org.apache.coyote.http11.AbstractHttp11Processor endRequest
SEVERE: Error finishing response
java.lang.ArrayIndexOutOfBoundsException
        at java.lang.System.arraycopy(Native Method)
        at org.apache.coyote.http11.AbstractOutputBuffer.write(AbstractOutputBuffer.java:491)
        at org.apache.coyote.http11.AbstractOutputBuffer.sendStatus(AbstractOutputBuffer.java:331)
        at org.apache.coyote.http11.AbstractHttp11Processor.prepareResponse(AbstractHttp11Processor.java:946)
        at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:739)
        at org.apache.coyote.Response.action(Response.java:168)
        at org.apache.coyote.http11.AbstractOutputBuffer.endRequest(AbstractOutputBuffer.java:308)
        at org.apache.coyote.http11.InternalNioOutputBuffer.endRequest(InternalNioOutputBuffer.java:150)
        at org.apache.coyote.http11.AbstractHttp11Processor.endRequest(AbstractHttp11Processor.java:984)
        at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:433)
        at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:357)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1584)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)

 

 tomcat 在 输出response之前, 需要sendHeader

如果 需要sendHeader的 信息 超过了8192,就会出现这个异常。

 

就我这边的问题而言,是response中的cookie内容太多了。

 

tomcat7.0.10

jdk1.6

 

处理的办法很简单,就是在结束之前竟可能的减少response中的cookie,或则修改tomcat的配置。

 

import      http://blog.csdn.net/miaoshuaiit/article/details/16879345

 

 

原因:

据说是Apache tomcat6的一个bug,需要增加maxHttpHeaderSize来处理。

tomcat的HttpHeaderSize默认值为8192,而你请求时超过了这个范围,可以修改这个这值已适应你的需求

 

解決方法:

Tomcat或JBoss的server.xml打开

指定maxHttpHeaderSize="8192"

 

[html]  view plain  copy
 
  在CODE上查看代码片 派生到我的代码片
  1. <Connector port="8080" address="${jboss.bind.address}" maxThreads="250" maxHttpHeaderSize="8192"    
  2.   
  3.     emptySessionPath="true" protocol="HTTP/1.1"    
  4.   
  5.     enableLookups="false" redirectPort="8443" acceptCount="100"    
  6.   
  7.     connectionTimeout="20000" disableUploadTimeout="true" />    

例如:将maxHttpHeaderSize的值修改为:maxHttpHeaderSize="81920"

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值