diff --git a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/RxJavaAutoConfiguration.java b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/RxJavaAutoConfiguration.java index 62be1dc5..31079f7c 100644 --- a/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/RxJavaAutoConfiguration.java +++ b/spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/rx/RxJavaAutoConfiguration.java @@ -22,6 +22,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.web.method.support.AsyncHandlerMethodReturnValueHandler; import org.springframework.web.method.support.HandlerMethodReturnValueHandler; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @@ -31,22 +32,26 @@ import rx.Observable; * @author Spencer Gibb */ @Configuration +@ConditionalOnWebApplication @ConditionalOnClass(Observable.class) public class RxJavaAutoConfiguration { - @Bean - public ObservableReturnValueHandler observableReturnValueHandler() { - return new ObservableReturnValueHandler(); - } + @Configuration + @ConditionalOnClass(AsyncHandlerMethodReturnValueHandler.class) + protected static class ObservableReturnValueHandlerConfig { + @Bean + public ObservableReturnValueHandler observableReturnValueHandler() { + return new ObservableReturnValueHandler(); + } - @Bean - @ConditionalOnWebApplication - public WebMvcConfigurerAdapter observableMVCConfiguration() { - return new WebMvcConfigurerAdapter() { - @Override - public void addReturnValueHandlers(List returnValueHandlers) { - returnValueHandlers.add(observableReturnValueHandler()); - } - }; + @Bean + public WebMvcConfigurerAdapter observableMVCConfiguration() { + return new WebMvcConfigurerAdapter() { + @Override + public void addReturnValueHandlers(List returnValueHandlers) { + returnValueHandlers.add(observableReturnValueHandler()); + } + }; + } } }