diff --git a/spring-web/src/main/java/org/springframework/http/client/reactive/JettyClientHttpResponse.java b/spring-web/src/main/java/org/springframework/http/client/reactive/JettyClientHttpResponse.java index 0a7d87281a..a41d18984f 100644 --- a/spring-web/src/main/java/org/springframework/http/client/reactive/JettyClientHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/client/reactive/JettyClientHttpResponse.java @@ -33,7 +33,6 @@ import org.springframework.http.HttpStatus; import org.springframework.http.ResponseCookie; import org.springframework.lang.Nullable; import org.springframework.util.Assert; -import org.springframework.util.ClassUtils; import org.springframework.util.CollectionUtils; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; @@ -53,8 +52,7 @@ class JettyClientHttpResponse implements ClientHttpResponse { private static final ClassLoader loader = JettyClientHttpResponse.class.getClassLoader(); - private static final boolean jetty10Present = ClassUtils.isPresent( - "org.eclipse.jetty.websocket.server.JettyWebSocketServerContainer", loader); + private static final boolean jetty10Present; private final ReactiveResponse reactiveResponse; @@ -64,6 +62,17 @@ class JettyClientHttpResponse implements ClientHttpResponse { private final HttpHeaders headers; + static { + try { + Class httpFieldsClass = loader.loadClass("org.eclipse.jetty.http.HttpFields"); + jetty10Present = httpFieldsClass.isInterface(); + } + catch (ClassNotFoundException ex) { + throw new IllegalStateException("No compatible Jetty version found", ex); + } + } + + public JettyClientHttpResponse(ReactiveResponse reactiveResponse, Publisher content) { this.reactiveResponse = reactiveResponse; this.content = Flux.from(content);