我最近从Tomcat切换到Jetty,从那以后,我可以在日志中看到这种WARN。
WARN org.eclipse.jetty.http.HttpParser - URI太大> 65535
WARN org.eclipse.jetty.http.HttpParser - 解析了错误的HTTP:414为 HttpChannelOverHttp @ 34ff28 {R = 0,C =假,A = IDLE,URI = NULL}
我正在寻找一种方法来更改发生这种情况时返回的响应(我更喜欢json响应,而不是默认返回的HTML)并且不记录警告。这是可以做到的吗?经过一些研究之后,似乎在任何地方我都可以注入一些代码来处理这个错误(如servlet过滤器的例子)之前记录了这个错误。
答案 0 :(得分:0)
这是一种称为“错误请求”的错误,在处理传入请求时很早就会出现 。
错误请求的一些示例
400 Bad Request (common)
412 Precondition Failed (rather esoteric, rare)
413 Request Entity Too Large (very common)
414 URI Too Long (very common)
431 Requested Header Fields Too Large (not produced by Jetty, yet)
错误请求没有请求URI,因此无法发送到该上下文的上下文来处理它。
这些类型的错误请求也没有标头,因此您甚至无法检查Accept
标头以确定是否应该将响应发送回application/json
人们看到这些响应代码的最常见原因是: