private void handleCrossDomainRpc( HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException { CrossDomainRpc rpc; try { rpc = new CrossDomainRpcLoader().loadRpc(servletRequest); } catch (IllegalArgumentException e) { servletResponse.setStatus(HttpServletResponse.SC_BAD_REQUEST); servletResponse.getOutputStream().println(e.getMessage()); servletResponse.getOutputStream().flush(); return; } HttpRequest request = new HttpRequest( HttpMethod.valueOf(rpc.getMethod()), rpc.getPath()); request.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.JSON_UTF_8.toString()); request.setContent(rpc.getContent()); HttpResponse response = commandHandler.handleRequest(request); sendResponse(response, servletResponse); }
protected void handleRequest( HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException { HttpRequest request = createInternalRequest(servletRequest); HttpResponse response = commandHandler.handleRequest(request); sendResponse(response, servletResponse); }
private static HttpRequest createInternalRequest(HttpServletRequest servletRequest) throws IOException { String path = servletRequest.getPathInfo(); if (Strings.isNullOrEmpty(path)) { path = "/"; } HttpRequest request = new HttpRequest( HttpMethod.valueOf(servletRequest.getMethod().toUpperCase()), path); @SuppressWarnings("unchecked") Enumeration<String> headerNames = servletRequest.getHeaderNames(); for (String name : list(headerNames)) { @SuppressWarnings("unchecked") Enumeration<String> headerValues = servletRequest.getHeaders(name); for (String value : list(headerValues)) { request.setHeader(name, value); } } InputStream stream = null; try { stream = servletRequest.getInputStream(); request.setContent(ByteStreams.toByteArray(stream)); } finally { if (stream != null) { try { stream.close(); } catch (IOException ignored) { // Do nothing. } } } return request; }