@Override public void configure(final FeatureContext context) { final Configuration config = context.getConfiguration(); // Register FastJson. if (!config.isRegistered(FastJsonFeature.class) && autoDiscover) { context.register(FastJsonFeature.class); } } }
@Override public Response getListingJson(Application app, ServletConfig sc, HttpHeaders headers, UriInfo uriInfo) throws JsonProcessingException { Response response = getListingJsonResponse(app, context, sc, headers, uriInfo); response.getHeaders().add("Access-Control-Allow-Origin", "*"); response.getHeaders().add("Access-Control-Allow-Headers", "x-requested-with, ssi-token"); response.getHeaders().add("Access-Control-Max-Age", "3600"); response.getHeaders().add("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS"); return response; } }
private static Response createErrorReply(int status, String errorMessage, MediaType mediaType) { String message; if (MediaType.APPLICATION_JSON_TYPE.equals(mediaType)) { message = "{\"error\": \"" + errorMessage + "\"}"; } else { message = "<error><message>" + errorMessage + "</message></error>"; } return Response.status(status).entity(message).type(mediaType).build(); }
private UriBuilder builder( long id ) { return uriInfo.getBaseUriBuilder().path( TransactionalService.class ).path( "/" + id ); } }
private static boolean shouldSummarize(UriInfo uriInfo) { return uriInfo.getQueryParameters().containsKey("summarize"); }
@Override public Response getListingJson(Application app, ServletConfig sc, HttpHeaders headers, UriInfo uriInfo) throws JsonProcessingException { Response response = getListingJsonResponse(app, context, sc, headers, uriInfo); response.getHeaders().add("Access-Control-Allow-Origin", "*"); response.getHeaders().add("Access-Control-Allow-Headers", "x-requested-with, ssi-token"); response.getHeaders().add("Access-Control-Max-Age", "3600"); response.getHeaders().add("Access-Control-Allow-Methods","GET,POST,PUT,DELETE,OPTIONS"); return response; } }
private void setupAsyncResponse(AsyncResponse asyncResponse, ListenableFuture<Response> future) { bindAsyncResponse(asyncResponse, future, executor) .withTimeout(ASYNC_TIMEOUT, () -> Response .status(BAD_GATEWAY) .type(TEXT_PLAIN_TYPE) .entity("Request to remote Presto server timed out after" + ASYNC_TIMEOUT) .build()); }
@Override public Response toResponse(RpcException e) { // TODO do more sophisticated exception handling and output if (e.getCause() instanceof ConstraintViolationException) { return handleConstraintViolationException((ConstraintViolationException) e.getCause()); } // we may want to avoid exposing the dubbo exception details to certain clients // TODO for now just do plain text output return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("Internal server error: " + e.getMessage()).type(ContentType.TEXT_PLAIN_UTF_8).build(); }
@Override public Response toResponse(RpcException e) { // TODO do more sophisticated exception handling and output if (e.getCause() instanceof ConstraintViolationException) { return handleConstraintViolationException((ConstraintViolationException) e.getCause()); } // we may want to avoid exposing the dubbo exception details to certain clients // TODO for now just do plain text output return Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("Internal server error: " + e.getMessage()).type(ContentType.TEXT_PLAIN_UTF_8).build(); }