@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { jsonConverter.append(servletResponse.getWriter(), getErrorJson(responseItem)); servletResponse.setStatus(responseItem.getErrorCode()); }
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { jsonConverter.append(servletResponse.getWriter(), getErrorJson(responseItem)); servletResponse.setStatus(responseItem.getErrorCode()); }
@Override protected void sendError(HttpServletResponse servletResponse, ResponseItem responseItem) throws IOException { jsonConverter.append(servletResponse.getWriter(), getErrorJson(responseItem)); servletResponse.setStatus(responseItem.getErrorCode()); }
protected void dispatch(JSONObject request, Map<String, FormDataItem> formItems, HttpServletRequest servletRequest, HttpServletResponse servletResponse, SecurityToken token, String callback) throws JSONException, IOException { String key = null; if (request.has("id")) { key = request.getString("id"); } // getRpcHandler never returns null Future<?> future = getHandler(request, servletRequest).execute(formItems, token, jsonConverter); // Resolve each Future into a response. // TODO: should use shared deadline across each request ResponseItem response = getResponseItem(future); Object result = getJSONResponse(key, response); // Generate the output Writer writer = servletResponse.getWriter(); if (callback != null) writer.append(callback).append('('); jsonConverter.append(writer, result); if (callback != null) writer.append(");\n"); }
protected void dispatchBatch(JSONArray batch, Map<String, FormDataItem> formItems , HttpServletRequest servletRequest, HttpServletResponse servletResponse, SecurityToken token, String callback) throws JSONException, IOException { // Use linked hash map to preserve order List<Future<?>> responses = Lists.newArrayListWithCapacity(batch.length()); // Gather all Futures. We do this up front so that // the first call to get() comes after all futures are created, // which allows for implementations that batch multiple Futures // into single requests. for (int i = 0; i < batch.length(); i++) { JSONObject batchObj = batch.getJSONObject(i); responses.add(getHandler(batchObj, servletRequest).execute(formItems, token, jsonConverter)); } // Resolve each Future into a response. // TODO: should use shared deadline across each request List<Object> result = new ArrayList<Object>(batch.length()); for (int i = 0; i < batch.length(); i++) { JSONObject batchObj = batch.getJSONObject(i); String key = null; if (batchObj.has("id")) { key = batchObj.getString("id"); } result.add(getJSONResponse(key, getResponseItem(responses.get(i)))); } // Generate the output Writer writer = servletResponse.getWriter(); if (callback != null) writer.append(callback).append('('); jsonConverter.append(writer, result); if (callback != null) writer.append(");\n"); }
protected void dispatch(JSONObject request, Map<String, FormDataItem> formItems, HttpServletRequest servletRequest, HttpServletResponse servletResponse, SecurityToken token, String callback) throws JSONException, IOException { String key = null; if (request.has("id")) { key = request.getString("id"); } // getRpcHandler never returns null Future<?> future = getHandler(request, servletRequest).execute(formItems, token, jsonConverter); // Resolve each Future into a response. // TODO: should use shared deadline across each request ResponseItem response = getResponseItem(future); Object result = getJSONResponse(key, response); // Generate the output Writer writer = servletResponse.getWriter(); if (callback != null) writer.append(callback).append('('); jsonConverter.append(writer, result); if (callback != null) writer.append(");\n"); }
protected void dispatchBatch(JSONArray batch, Map<String, FormDataItem> formItems , HttpServletRequest servletRequest, HttpServletResponse servletResponse, SecurityToken token, String callback) throws JSONException, IOException { // Use linked hash map to preserve order List<Future<?>> responses = Lists.newArrayListWithCapacity(batch.length()); // Gather all Futures. We do this up front so that // the first call to get() comes after all futures are created, // which allows for implementations that batch multiple Futures // into single requests. for (int i = 0; i < batch.length(); i++) { JSONObject batchObj = batch.getJSONObject(i); responses.add(getHandler(batchObj, servletRequest).execute(formItems, token, jsonConverter)); } // Resolve each Future into a response. // TODO: should use shared deadline across each request List<Object> result = new ArrayList<Object>(batch.length()); for (int i = 0; i < batch.length(); i++) { JSONObject batchObj = batch.getJSONObject(i); String key = null; if (batchObj.has("id")) { key = batchObj.getString("id"); } result.add(getJSONResponse(key, getResponseItem(responses.get(i)))); } // Generate the output Writer writer = servletResponse.getWriter(); if (callback != null) writer.append(callback).append('('); jsonConverter.append(writer, result); if (callback != null) writer.append(");\n"); }
protected void dispatchBatch(JSONArray batch, Map<String, FormDataItem> formItems , HttpServletRequest servletRequest, HttpServletResponse servletResponse, SecurityToken token, String callback) throws JSONException, IOException { // Use linked hash map to preserve order List<Future<?>> responses = Lists.newArrayListWithCapacity(batch.length()); // Gather all Futures. We do this up front so that // the first call to get() comes after all futures are created, // which allows for implementations that batch multiple Futures // into single requests. for (int i = 0; i < batch.length(); i++) { JSONObject batchObj = batch.getJSONObject(i); responses.add(getHandler(batchObj, servletRequest).execute(formItems, token, jsonConverter)); } // Resolve each Future into a response. // TODO: should use shared deadline across each request List<Object> result = new ArrayList<Object>(batch.length()); for (int i = 0; i < batch.length(); i++) { JSONObject batchObj = batch.getJSONObject(i); String key = null; if (batchObj.has("id")) { key = batchObj.getString("id"); } result.add(getJSONResponse(key, getResponseItem(responses.get(i)))); } // Generate the output Writer writer = servletResponse.getWriter(); if (callback != null) writer.append(callback).append('('); jsonConverter.append(writer, result); if (callback != null) writer.append(");\n"); }
protected void dispatch(JSONObject request, Map<String, FormDataItem> formItems, HttpServletRequest servletRequest, HttpServletResponse servletResponse, SecurityToken token, String callback) throws JSONException, IOException { String key = null; if (request.has("id")) { key = request.getString("id"); } // getRpcHandler never returns null Future<?> future = getHandler(request, servletRequest).execute(formItems, token, jsonConverter); // Resolve each Future into a response. // TODO: should use shared deadline across each request ResponseItem response = getResponseItem(future); Object result = getJSONResponse(key, response); // Generate the output Writer writer = servletResponse.getWriter(); if (callback != null) writer.append(callback).append('('); jsonConverter.append(writer, result); if (callback != null) writer.append(");\n"); }