@RequestMapping(value = "/{eventId}/content", method = GET) public void getSingleEventContent(@PathVariable("eventId") String eventId) throws IOException, URISyntaxException, UnknownSubscriptionException, ResourceNotAvailableException { Optional<EventHolder> holder = retrieveSingleEvent(eventId); if (!holder.isPresent()) { throw new ResourceNotAvailableException("Could not find event"); } Optional<Streamable> streamable = holder.get().streamableObject(); if (streamable.isPresent()) { Streamable obj = streamable.get(); HttpServletResponse resp = requestUtils.resolveResponseObject(); String ct = obj.getContentType(); resp.setContentType(ct); resp.setStatus(200); InputStream is = obj.asStream(); try (ServletOutputStream os = resp.getOutputStream()) { byte[] buffer = new byte[1024]; int count; while ((count = is.read(buffer)) > 0) { os.write(buffer, 0, count); os.flush(); } } } else { throw new ResourceNotAvailableException("No content for this event available"); } }