有一天我发现我们工公司项目显示未定义
后来在后台看log文件,显示如下:
[root@**** logs]# tail -n 1000 catalina.2020-07-03.log
七月 03, 2020 2:33:54 上午 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 (CR or LF) found in method name
at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:131)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:993)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:625)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
七月 03, 2020 3:21:07 上午 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.ArrayIndexOutOfBoundsException
七月 03, 2020 7:51:17 上午 org.apache.tomcat.util.http.Parameters processParameters
信息: Invalid chunk starting at byte [1,469] and ending at byte [1,536] with a value of [=%E9%97%AE%E9%A2%98%E5%8F%8A%E5%A4%84%E7%90%86%E6%83%85%E5%86%B5%3A] ignored
Note: further occurrences of Parameter errors will be logged at DEBUG level.
查了一下有三种方式,其一是修改URL最大长度,其二将get方法改成post方法,其三是修改Server.xml的Connector。
最后是通过第三种方式解决的,增加内容是
relaxedQueryChars="[,]"
大家可以借鉴一下,以后我会给出理由。