1
나는 jetty (버전 : 9.3.11.v20160721)가있는 Spring의 DeferredResult를 사용하고이 오류가 발생합니다. 재설정 버퍼 부두 예외 받기
java.lang.IllegalStateException: cannot reset buffer on committed response
at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1245)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:371)
at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:266)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
at java.lang.Thread.run(Unknown Source)
나는 응답이 동일한 요청에 두 번 전송되는 것을 말하고있다 구글을했다,하지만 난 발생하지 않습니다 이러한 가능성을 가진, 따라서 어떤 응답을 설정하기 전에 점검을 다음과 같은 데.
private DeferredResult<Object> result = new DeferredResult<>(10000);
private void checkAndSend(Object res) {
if (result.isSetOrExpired()) {
log.warn("DeferredResult set/expired for res: {}", res);
return;
}
... // respsond
}
누군가가 나를 도와주세요.
필자의 코드에서 나는 어떤 응답도 쓰지 않을 것입니다. 이미 설정된 경우 코드가 반환됩니다. 그리고 스프링 프레임 워크에 몇 가지 문제가있을 수 있습니다 (jira에서 관련 문제가 발견되지 않음) –