List of usage examples for org.springframework.web.context.request.async DeferredResult setErrorResult
public boolean setErrorResult(Object result)
From source file:com.kixeye.chassis.transport.websocket.responseconverter.ObservableResponseConverter.java
@Override public DeferredResult<Object> convertToDeferredResult(Object response) { final DeferredResult<Object> deferredResult = new DeferredResult<>(); ((Observable<?>) response).subscribe(new Observer<Object>() { @Override//www . jav a 2 s. c o m public void onCompleted() { if (!deferredResult.hasResult()) { deferredResult.setResult(null); } } @Override public void onError(Throwable e) { deferredResult.setErrorResult(e); } @Override public void onNext(Object args) { deferredResult.setResult(args); } }); return deferredResult; }
From source file:io.ignitr.dispatchr.manager.controller.client.ClientController.java
/** * Finds a specific client.// w ww.j a v a2 s. c o m * * @param clientId client identifier * @return an HTTP 200 response containing the client metadata or an HTTP 404 if the client does not exist */ @RequestMapping(method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<FindClientResponse>> findOne(@PathVariable("clientId") String clientId, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<FindClientResponse>> deferredResult = new DeferredResult<>(); service.findOne(clientId).lift(new RequestContextStashOperator<>()).last().map(FindClientResponse::from) .subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:io.ignitr.dispatchr.manager.controller.client.ClientsController.java
/** * Registers a new client in the system. * * @param request client registration request * @return an HTTP 201 response if the client was successfully registered */// w w w .ja va 2 s . c om @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<RegisterClientResponse>> register( @Valid @RequestBody RegisterClientRequest request, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<RegisterClientResponse>> deferredResult = new DeferredResult<>(); service.register(request).lift(new RequestContextStashOperator<>()).last().map(RegisterClientResponse::from) .subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:io.ignitr.dispatchr.manager.controller.topic.TopicController.java
/** * Register an SNS topic with Dispatchr. * * @param topicName the name of the topic to save * @param httpRequest http request/*ww w .j a va2 s .com*/ * @return an HTTP 201 response if the request was successful */ @RequestMapping(method = RequestMethod.PUT, value = "/registered", produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<?>> register(@PathVariable("name") String topicName, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<?>> deferredResult = new DeferredResult<>(); service.register(topicName).lift(new RequestContextStashOperator<>()).last() .map(RegisterTopicResponse::from).subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:io.ignitr.dispatchr.manager.controller.topic.TopicController.java
/** * Unregister an SNS topic with Dispatchr. * * @param topicName the name of the topic to delete * @param httpRequest http request/*from w ww .j ava2 s . c om*/ * @return an HTTP 204 response if the request was successful */ @RequestMapping(method = RequestMethod.DELETE, value = "/registered", produces = MediaType.APPLICATION_JSON_VALUE) public DeferredResult<ResponseEntity<?>> unregister(@PathVariable("name") String topicName, HttpServletRequest httpRequest) { final DeferredResult<ResponseEntity<?>> deferredResult = new DeferredResult<>(); service.unregister(topicName).lift(new RequestContextStashOperator<>()).last() .map(UnregisterTopicResponse::from).subscribeOn(Schedulers.io()).subscribe(body -> { deferredResult.setResult(ResponseEntity.ok(body)); }, error -> { deferredResult.setErrorResult(errorHandler.handleError(httpRequest, error)); }); return deferredResult; }
From source file:comsat.sample.actuator.SampleController.java
@RequestMapping("/deferred/foo") @ResponseBody//from w ww . j a v a 2 s. co m public DeferredResult<String> fooDeferred() { final DeferredResult<String> ret = new DeferredResult<>(); new Fiber(new SuspendableCallable<String>() { @Override public String run() throws SuspendExecution, InterruptedException { try { return fooCallable(ret).call(); } catch (Exception ex) { ret.setErrorResult(ret); throw new RuntimeException(ex); } } }).start(); return ret; }
From source file:com.kixeye.chassis.transport.http.ObserableReturnValueHandler.java
@Override public void handleReturnValue(Object returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws Exception { if (returnValue == null) { mavContainer.setRequestHandled(true); return;//from w w w. jav a 2 s. c o m } final DeferredResult<Object> deferredResult = new DeferredResult<>(); ((Observable<?>) returnValue).subscribe(new Observer<Object>() { @Override public void onCompleted() { if (!deferredResult.hasResult()) { logger.error("onComplete before onNext"); deferredResult.setResult(null); } } @Override public void onError(Throwable e) { deferredResult.setErrorResult(e); } @Override public void onNext(Object args) { deferredResult.setResult(args); } }); WebAsyncUtils.getAsyncManager(webRequest).startDeferredResultProcessing(deferredResult, mavContainer); }
From source file:comsat.sample.actuator.SampleController.java
@RequestMapping(value = "/deferred", method = RequestMethod.GET) @ResponseBody//from w w w .j a v a2 s.c o m public DeferredResult<Map<String, String>> helloDeferred() { final DeferredResult<Map<String, String>> ret = new DeferredResult<>(); new Fiber(new SuspendableCallable<Map<String, String>>() { @Override public Map<String, String> run() throws SuspendExecution, InterruptedException { try { return helloCallable(ret).call(); } catch (Exception ex) { ret.setErrorResult(ret); throw new RuntimeException(ex); } } }).start(); return ret; }
From source file:comsat.sample.actuator.SampleController.java
@RequestMapping(value = "/deferred", method = RequestMethod.POST) @ResponseBody//from ww w.j av a2s . co m public DeferredResult<Map<String, Object>> ollehDeferred(@Validated final Message message) { final DeferredResult<Map<String, Object>> ret = new DeferredResult<>(); new Fiber(new SuspendableCallable<Map<String, Object>>() { @Override public Map<String, Object> run() throws SuspendExecution, InterruptedException { try { return ollehCallable(message, ret).call(); } catch (Exception ex) { ret.setErrorResult(ret); throw new RuntimeException(ex); } } }).start(); return ret; }
From source file:comsat.sample.actuator.SampleController.java
private Callable<String> fooCallable(final DeferredResult<String> optDeferred) throws SuspendExecution { return new Callable<String>() { @Override// www .ja v a 2 s . co m @Suspendable public String call() throws Exception { try { Fiber.sleep(10); throw new IllegalArgumentException("Server error"); } catch (Throwable t) { if (optDeferred != null) optDeferred.setErrorResult(t); throw t; } } }; }