2018-04-02 09:24:55 org.apache.catalina.connector.CoyoteAdapter service
嚴重: An exception or error occurred in the container during the request processing
java.lang.ArrayIndexOutOfBoundsException: 8192
at org.apache.coyote.http11.InternalOutputBuffer.write(InternalOutputBuffer.java:711)
at org.apache.coyote.http11.InternalOutputBuffer.write(InternalOutputBuffer.java:618)
at org.apache.coyote.http11.InternalOutputBuffer.sendHeader(InternalOutputBuffer.java:491)
at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1587)
at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:934)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.coyote.Response.sendHeaders(Response.java:379)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:305)
at org.apache.catalina.connector.OutputBuffer.close(OutputBuffer.java:273)
at org.apache.catalina.connector.Response.finishResponse(Response.java:486)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:232)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Thread.java:619)
2018-04-02 09:24:55org.apache.coyote.http11.Http11Processor process 嚴重: Error finishing response java.lang.ArrayIndexOutOfBoundsException at java.lang.System.arraycopy(Native Method) at org.apache.coyote.http11.InternalOutputBuffer.write(InternalOutputBuffer.java:680) at org.apache.coyote.http11.InternalOutputBuffer.sendStatus(InternalOutputBuffer.java:419) at org.apache.coyote.http11.Http11Processor.prepareResponse(Http11Processor.java:1576) at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:934) at org.apache.coyote.Response.action(Response.java:181) at org.apache.coyote.http11.InternalOutputBuffer.endRequest(InternalOutputBuffer.java:379) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:879) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445) at java.lang.Thread.run(Thread.java:619)
原因:
據說是Apache tomcat6的一個bug,需要增加maxHttpHeaderSize來處理。
tomcat的HttpHeaderSize預設值為8192,而你請求時超過了這個範圍,可以修改這個這值已適應你的需求
解決方法:
Tomcat或JBoss的server.xml開啟
指定maxHttpHeaderSize="8192"
<Connector port="8080" address="${jboss.bind.address}" maxThreads="250" maxHttpHeaderSize="8192" emptySessionPath="true" protocol="HTTP/1.1" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
例如:將maxHttpHeaderSize的值修改為:maxHttpHeaderSize="81920"
注意:
在AJP連線的場合,
不應使用maxHttpHeaderSize,而是指定packetSize。
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" packetSize="81920" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />