@RestController @RequestMapping("/api/order") public class OrderResource { private static final Logger log = LoggerFactory.getLogger(OrderResource.class); private final OrderService orderService; public OrderResource(OrderService orderService) { super(); this.orderService = orderService; } @GetMapping(value = "", produces = { MediaType.APPLICATION_JSON_UTF8_VALUE }) public DeferredResult<?> getOrder() { log.debug("Retrieving Order Details."); final DeferredResult<ResponseEntity<OrderDetailsDTO>> deferredResult = new DeferredResult<>(); orderService.getOrderDetails().subscribeOn(Schedulers.io()).subscribe( sub -> deferredResult.setResult(ResponseEntity.ok(sub)), e -> deferredResult.setErrorResult(e)); return deferredResult; } }