关于Invalid character found in method name. HTTP method names must be tokens的问题

最近,发现线上的用户中心运行一段时间后,就会报错,但是不影响程序的正常使用。测试环境中,从未发生这个问题。于是感觉很奇怪,便开始排查该问题。

关于这个问题网上的资料很少,估计是很少人遇到这种情况,我遇到的这个情况应该是个神奇的存在。

报错代码如下:

Jun 01, 2017 10:21:52 AM org.apache.coyote.http11.AbstractHttp11Processor process
INFO: 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.InternalNioInputBuffer.parseRequestLine(InternalNioInputBuffer.java:266)
    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.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1756)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1715)
    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:724)

在网上有人说是在server.xml中加上maxHttpHeaderSize=”8192” 然而并没用
后来在网上看见一贴,说是 本是http的请求 错误使用https方式请求 就会报该错,于是测试了一下,果真如此!

你可能感兴趣的:(tomcat)