异常源自 tomcat7 ,但 tomcat8 也有同样的问题
异常完整信息,请注意你的异常是否与本异常一致:
该异常复现方法:你的网站请求地址后携带一个参数,值为 '{' 或 '}',例如:http://www.xxx.com?v=${xxx}
Jun xx, xxxx x:xx:xx 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 the request target. The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.InternalInputBuffer.parseRequestLine(InternalInputBuffer.java:194)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1052)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:318)
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)
如异常信息一致,请看解决方法:
方法1
修改:tomcat7/conf/catalina.properties 配置文件,拉到最后一行,会看到被注释的一行代码:
# tomcat.util.http.parser.HttpParser.requestTargetAllow=|
取消改行代码注释,(把 # 删除即可),同时在尾部追加:{} 即可,例如
tomcat.util.http.parser.HttpParser.requestTargetAllow=|{}
重启tomcat,使用上述复现异常方式再次测试问题是否解决。
如果问题解决,你自然就能猜出问题原因,详细原因请继续百度
建议百度关键词:java.lang.IllegalArgumentException、The valid characters are defined in RFC 7230 and RFC 3986