DEFAULT_MAX_INITIAL_LINE_LENGTH
Reactor netty 에서 initial line length 변경 방법
curl "http://localhost:8080/my-param-34239892852....?a=fjkdjsljgkl"
위와 같이 너무 긴 URI 를 'Reactor Netty 를 사용하는 WAS(Web application Server)' 로 request 를 보냈다.
그래서 다음과 같은 error 가 발생했다.
io.netty.handler.codec.http.TooLongHttpLineException : an HTTP line is larget than 4096 bytes.
...
이슈의 원인은 netty 의 기본 설정된 DEFAULT_MAX_INITIAL_LINE_LENGTH
값때문이다.
수정방법
아래 코드 처럼 maxInitialLineLength()
를 해주면 된다.
import reactor.core.publisher.Mono;
import reactor.netty.DisposableServer;
import reactor.netty.http.server.HttpServer;
public class Application {
public static void main(String[] args) {
DisposableServer server =
HttpServer.create()
.httpRequestDecoder(spec -> spec.maxInitialLineLength(16384))
.handle((request, response) -> response.sendString(Mono.just("hello")))
.bindNow();
server.onDispose()
.block();
}
}
댓글 없음:
댓글 쓰기