信息: Error parsing HTTP request header Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.

1、在查看系统后台日志时,发现异常信息如下:

八月 27, 2018 12:34:52 上午 org.apache.coyote.http11.AbstractHttp11Processor process
信息: Error parsing HTTP request header
 Note: further occurrences of HTTP header parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens
    at org.apache.coyote.http11.InternalAprInputBuffer.parseRequestLine(InternalAprInputBuffer.java:181)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:996)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
    at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

 

2、在网上查找资料解决方案

因为httpHeaderSize大小不够导致的,要修改tomcat的配置,新加一个字段maxHttpHeaderSize,在tomcat的配置文件server.xml里,对<Connector>元素添加属性 maxHttpHeaderSize="8999",或是需要将method 的属性设置为POST

<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000" maxHttpHeaderSize="8999"
               redirectPort="8443" />

maxHttpHeaderSize:HTTP请求和响应头的最大量,以字节为单位,默认值为4096字节。

 

3、异常原因分析

经过分析,发现此问题与请求参数有关。当在浏览器中访问时 URL中带有特殊字符,如花括号冒号时,就会出现这个错误。例如:http://localhost:8080/index.do?{id:123},在有些情况下,即使没有花括号,只要带有"?+参数"就会报此异常。

 

posted @ 2018-08-27 17:38  魏朝辉  阅读(4828)  评论(0编辑  收藏  举报