private void writeExceptionToResponse(HttpServletResponse theResponse, BaseServerResponseException theException) throws IOException { theResponse.setStatus(theException.getStatusCode()); addHeadersToResponse(theResponse); if (theException.hasResponseHeaders()) { for (Entry<String, List<String>> nextEntry : theException.getResponseHeaders().entrySet()) { for (String nextValue : nextEntry.getValue()) { if (isNotBlank(nextValue)) { theResponse.addHeader(nextEntry.getKey(), nextValue); } } } } theResponse.setContentType("text/plain"); theResponse.setCharacterEncoding("UTF-8"); theResponse.getWriter().write(theException.getMessage()); }
private void returnRawResponse(RequestDetails theRequestDetails, HttpServletResponse theServletResponse, String theContentType, IPrimitiveType<byte[]> theData) { theServletResponse.setStatus(200); if (theRequestDetails.getServer() instanceof RestfulServer) { RestfulServer rs = (RestfulServer) theRequestDetails.getServer(); rs.addHeadersToResponse(theServletResponse); } theServletResponse.addHeader(Constants.HEADER_CONTENT_TYPE, theContentType); // Write the response try { theServletResponse.getOutputStream().write(theData.getValue()); theServletResponse.getOutputStream().close(); } catch (IOException e) { throw new InternalErrorException(e); } } }
private void addHeaders() { HttpServletResponse theHttpResponse = getRequestDetails().getServletResponse(); getRequestDetails().getServer().addHeadersToResponse(theHttpResponse); for (Entry<String, List<String>> header : getHeaders().entrySet()) { final String key = header.getKey(); boolean first = true; for (String value : header.getValue()) { // existing headers should be overridden if (first) { theHttpResponse.setHeader(key, value); first = false; } else { theHttpResponse.addHeader(key, value); } } } }
rs.addHeadersToResponse(theServletResponse);
public Object returnResponse(ServletRequestDetails theRequest, ParseAction<?> outcome, int operationStatus, boolean allowPrefer, MethodOutcome response, String resourceName) throws IOException { HttpServletResponse servletResponse = theRequest.getServletResponse(); servletResponse.setStatus(operationStatus); servletResponse.setCharacterEncoding(Constants.CHARSET_NAME_UTF8); addHeadersToResponse(servletResponse); if (allowPrefer) { addContentLocationHeaders(theRequest, servletResponse, response, resourceName); } Writer writer; if (outcome != null) { ResponseEncoding encoding = RestfulServerUtils.determineResponseEncodingWithDefault(theRequest); servletResponse.setContentType(encoding.getResourceContentType()); writer = servletResponse.getWriter(); IParser parser = encoding.getEncoding().newParser(getFhirContext()); parser.setPrettyPrint(RestfulServerUtils.prettyPrintResponse(this, theRequest)); outcome.execute(parser, writer); } else { servletResponse.setContentType(Constants.CT_TEXT_WITH_UTF8); writer = servletResponse.getWriter(); } return writer; }
private void writeExceptionToResponse(HttpServletResponse theResponse, BaseServerResponseException theException) throws IOException { theResponse.setStatus(theException.getStatusCode()); addHeadersToResponse(theResponse); if (theException.hasResponseHeaders()) { for (Entry<String, List<String>> nextEntry : theException.getResponseHeaders().entrySet()) { for (String nextValue : nextEntry.getValue()) { if (isNotBlank(nextValue)) { theResponse.addHeader(nextEntry.getKey(), nextValue); } } } } theResponse.setContentType("text/plain"); theResponse.setCharacterEncoding("UTF-8"); theResponse.getWriter().write(theException.getMessage()); }
private void returnRawResponse(RequestDetails theRequestDetails, HttpServletResponse theServletResponse, String theContentType, IPrimitiveType<byte[]> theData) { theServletResponse.setStatus(200); if (theRequestDetails.getServer() instanceof RestfulServer) { RestfulServer rs = (RestfulServer) theRequestDetails.getServer(); rs.addHeadersToResponse(theServletResponse); } theServletResponse.addHeader(Constants.HEADER_CONTENT_TYPE, theContentType); // Write the response try { theServletResponse.getOutputStream().write(theData.getValue()); theServletResponse.getOutputStream().close(); } catch (IOException e) { throw new InternalErrorException(e); } } }
private void addHeaders() { HttpServletResponse theHttpResponse = getRequestDetails().getServletResponse(); getRequestDetails().getServer().addHeadersToResponse(theHttpResponse); for (Entry<String, List<String>> header : getHeaders().entrySet()) { final String key = header.getKey(); boolean first = true; for (String value : header.getValue()) { // existing headers should be overridden if (first) { theHttpResponse.setHeader(key, value); first = false; } else { theHttpResponse.addHeader(key, value); } } } }
public Object returnResponse(ServletRequestDetails theRequest, ParseAction<?> outcome, int operationStatus, boolean allowPrefer, MethodOutcome response, String resourceName) throws IOException { HttpServletResponse servletResponse = theRequest.getServletResponse(); servletResponse.setStatus(operationStatus); servletResponse.setCharacterEncoding(Constants.CHARSET_NAME_UTF8); addHeadersToResponse(servletResponse); if (allowPrefer) { addContentLocationHeaders(theRequest, servletResponse, response, resourceName); } Writer writer; if (outcome != null) { ResponseEncoding encoding = RestfulServerUtils.determineResponseEncodingWithDefault(theRequest); servletResponse.setContentType(encoding.getResourceContentType()); writer = servletResponse.getWriter(); IParser parser = encoding.getEncoding().newParser(getFhirContext()); parser.setPrettyPrint(RestfulServerUtils.prettyPrintResponse(this, theRequest)); outcome.execute(parser, writer); } else { servletResponse.setContentType(Constants.CT_TEXT_WITH_UTF8); writer = servletResponse.getWriter(); } return writer; }
rs.addHeadersToResponse(theServletResponse);