【发布时间】:2016-10-16 14:59:01
【问题描述】:
我有一个在 Tomcat8 上运行的 Spring MVC 应用程序。一两天内,我的日志文件中出现异常
15-Jun-2016 10:43:39.832 INFO [http-nio-8080-exec-50] 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.AbstractNioInputBuffer.parseRequestLine(AbstractNioInputBuffer.java:228)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1009)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
有人知道这可能是什么吗?
【问题讨论】:
-
看起来传入的 HTTP 请求标头格式错误。正如错误消息告诉您的那样,请求标头在 HTTP 方法名称(行尾)中包含禁止字符,因此请求解析器失败并出现异常。因此,这不是您的代码中的问题。您可以忽略它或要求发件人检查请求的有效性。
-
@Vladimir Vagaytsev - 请求来自 Web,我们使用 nginx 设置了 LB。在服务器上,它会抛出上述错误并抛出 Bad Gateway。 scalescale.com/tips/nginx/502-bad-gateway-error-using-nginx 没有帮助:(
-
我相信,这个例外与 SSL 设置有关,因为相同(嗯,几乎相似)的战争在舞台机器上工作 - 我们使用 http 访问 - 而测试生产设置(使用https)是我们面临这个问题的地方。必须检查我们的 nginx 配置。以防万一,您找到了解决方法 - 请告诉我 :)
-
嗨VadOs,你的tomcat是在云机上运行的吗?如果是,请参考 - (cyber4.org/three-legged-pig/…) 和 (confluence.atlassian.com/confkb/…)
-
小伙伴们,你们有进步吗?
标签: java spring-mvc ubuntu tomcat8