aHttpResponse.sendError(HttpServletResponse.SC_NOT_FOUND, ex.getMessage()); } else if (ex instanceof JsObjectException) { String errorBody = aPlatypusSession.getSpace().toJson(((JsObjectException) ex).getData()); if (aHttpResponse.getStatus() >= 200 && aHttpResponse.getStatus() < 300) { aHttpResponse.setStatus(HttpServletResponse.SC_CONFLICT);
JsObjectException jsoex = (JsObjectException) ex; Logger.getLogger(PlatypusRequestsHandler.class.getName()).log(Level.SEVERE, String.format(JS_OBJECT_EXCEPTION_MESSAGE, requestEnv.request.getType(), requestEnv.request.getClass().getSimpleName(), jsoex.getMessage())); ioSession.write(new JsonExceptionResponse(jsoex, session.getSpace().toJson(jsoex.getData()))); } else { onError.accept(ex); JsObjectException jsoex = (JsObjectException) ex; Logger.getLogger(PlatypusRequestsHandler.class.getName()).log(Level.SEVERE, String.format(JS_OBJECT_EXCEPTION_MESSAGE, requestEnv.request.getType(), requestEnv.request.getClass().getSimpleName(), jsoex.getMessage())); ioSession.write(new JsonExceptionResponse(jsoex, session.getSpace().toJson(jsoex.getData()))); } else { onError.accept(ex);
for(int p = 1; p <= aParams.getParametersCount(); p++){ Parameter param = aParams.get(p); params.put(param.getName(), aSpace.toJson(aSpace.toJs(param.getValue())));
onSuccess.accept(new ExecuteQueryRequest.Response(Scripts.getSpace().toJson(aResult)));
@Override public void visit(RPCRequest.Response resp) throws Exception { final Object result = ((RPCRequest.Response) resp).getResult(); makeResponseNotCacheable(servletResponse); if (result instanceof String) { writeJsonResponse((String) result, servletResponse, async); } else if (result instanceof Report) { writeReportResponse((Report) result); } else if (result instanceof JSObject) { /* JSObject jsResult = (JSObject) result; JSObject p = space.lookupInGlobal("P"); if (p != null) { Object reportClass = p.getMember("Report"); if (jsResult.isInstanceOf(reportClass)) { Report report = (Report) ((JSObject) jsResult.getMember("unwrap")).call(null, new Object[]{}); writeReportResponse(report); } else { writeJsonResponse(space.toJson(result), servletResponse, async); } } else { writeJsonResponse(space.toJson(result), servletResponse, async); } */ writeJsonResponse(space.toJson(result), servletResponse, async); } else {// including null result writeJsonResponse(space.toJson(space.toJs(result)), servletResponse, async); } }
public Object executeServerModuleMethod(String aModuleName, String aMethodName, Scripts.Space aSpace, Consumer<Object> onSuccess, Consumer<Exception> onFailure, Object... aArguments) throws Exception { String[] argumentsJsons = new String[aArguments.length]; for (int i = 0; i < argumentsJsons.length; i++) { argumentsJsons[i] = aSpace.toJson(aArguments[i]); } final RPCRequest request = new RPCRequest(aModuleName, aMethodName, argumentsJsons); if (onSuccess != null) { conn.<RPCRequest.Response>enqueueRequest(request, aSpace, (RPCRequest.Response aResponse) -> { Object sResult = adoptRPCResponse(aResponse, aSpace); onSuccess.accept(sResult); }, onFailure); return null; } else { RPCRequest.Response response = conn.executeRequest(request); Object sResult = adoptRPCResponse(response, aSpace); return sResult; } }
@Override public void handle(Session aSession, Consumer<RPCRequest.Response> onSuccess, Consumer<Exception> onFailure) { String[] jsons = getRequest().getArgumentsJsons(); Object[] arguments = new Object[jsons.length]; for (int i = 0; i < arguments.length; i++) { arguments[i] = aSession.getSpace().parseJsonWithDates(jsons[i]); } serverCore.executeMethod(getRequest().getModuleName(), getRequest().getMethodName(), arguments, true, (Object result) -> { onSuccess.accept(new RPCRequest.Response(result instanceof Report ? result : aSession.getSpace().toJson(result))); }, onFailure); }