/** * 构建rpc错误结果 * * @param errorMsg 错误消息 * @return rpc结果 */ public static SofaResponse buildSofaErrorResponse(String errorMsg) { SofaResponse sofaResponse = new SofaResponse(); sofaResponse.setErrorMsg(errorMsg); return sofaResponse; } }
/** * 构建rpc错误结果 * * @param errorMsg 错误消息 * @return rpc结果 */ public static SofaResponse buildSofaErrorResponse(String errorMsg) { SofaResponse sofaResponse = new SofaResponse(); sofaResponse.setErrorMsg(errorMsg); return sofaResponse; } }
/** * A->B(当前)->C的场景下,将远程服务端C的RPc异常异步返回给调用者A * * @see SofaResponseCallback#onSofaException(SofaRpcException, String, RequestBase) */ @Override public void sendSofaException(SofaRpcException sofaException) { checkState(); SofaResponse response = new SofaResponse(); response.setErrorMsg(sofaException.getMessage()); sendSofaResponse(response, sofaException); }
/** * A->B(当前)->C的场景下,将远程服务端C的RPc异常异步返回给调用者A * * @see SofaResponseCallback#onSofaException(SofaRpcException, String, RequestBase) */ @Override public void sendSofaException(SofaRpcException sofaException) { checkState(); SofaResponse response = new SofaResponse(); response.setErrorMsg(sofaException.getMessage()); sendSofaResponse(response, sofaException); }
sofaResponse.setErrorMsg(errorMessage); } else {
sofaResponse.setErrorMsg(errorMessage); } else {
sofaResponse.setErrorMsg(errorMessage); } else {
sofaResponse.setErrorMsg(errorMessage); } else {
sofaResponse.setErrorMsg(e.getMessage()); } catch (IllegalAccessException e) { // 如果此 Method 对象强制执行 Java 语言访问控制,并且底层方法是不可访问的 sofaResponse.setErrorMsg(e.getMessage());
sofaResponse.setErrorMsg(e.getMessage()); } catch (IllegalAccessException e) { // 如果此 Method 对象强制执行 Java 语言访问控制,并且底层方法是不可访问的 sofaResponse.setErrorMsg(e.getMessage());
sofaResponse.setErrorMsg("rest path ends with /favicon.ico"); } else if (throwable != null) { if (response.getStatus() == 500) { sofaResponse.setAppResponse(throwable); } else { sofaResponse.setErrorMsg(throwable.getMessage());
sofaResponse.setErrorMsg("rest path ends with /favicon.ico"); } else if (throwable != null) { if (response.getStatus() == 500) { sofaResponse.setAppResponse(throwable); } else { sofaResponse.setErrorMsg(throwable.getMessage());
@Override public void decodeObjectByTemplate(AbstractByteBuf data, Map<String, String> context, SofaResponse template) throws SofaRpcException { try { UnsafeByteArrayInputStream inputStream = new UnsafeByteArrayInputStream(data.array()); Hessian2Input input = new Hessian2Input(inputStream); // 根据SerializeType信息决定序列化器 boolean genericSerialize = context != null && isGenericResponse( context.get(RemotingConstants.HEAD_GENERIC_TYPE)); if (genericSerialize) { input.setSerializerFactory(genericSerializerFactory); GenericObject genericObject = (GenericObject) input.readObject(); template.setErrorMsg((String) genericObject.getField("errorMsg")); template.setAppResponse(genericObject.getField("appResponse")); template.setResponseProps((Map<String, String>) genericObject.getField("responseProps")); } else { input.setSerializerFactory(serializerFactory); SofaResponse tmp = (SofaResponse) input.readObject(); // copy values to template template.setErrorMsg(tmp.getErrorMsg()); template.setAppResponse(tmp.getAppResponse()); template.setResponseProps(tmp.getResponseProps()); } input.close(); } catch (IOException e) { throw buildDeserializeError(e.getMessage(), e); } }
@Override public void decodeObjectByTemplate(AbstractByteBuf data, Map<String, String> context, SofaResponse template) throws SofaRpcException { try { UnsafeByteArrayInputStream inputStream = new UnsafeByteArrayInputStream(data.array()); Hessian2Input input = new Hessian2Input(inputStream); // 根据SerializeType信息决定序列化器 boolean genericSerialize = context != null && isGenericResponse( context.get(RemotingConstants.HEAD_GENERIC_TYPE)); if (genericSerialize) { input.setSerializerFactory(genericSerializerFactory); GenericObject genericObject = (GenericObject) input.readObject(); template.setErrorMsg((String) genericObject.getField("errorMsg")); template.setAppResponse(genericObject.getField("appResponse")); template.setResponseProps((Map<String, String>) genericObject.getField("responseProps")); } else { input.setSerializerFactory(serializerFactory); SofaResponse tmp = (SofaResponse) input.readObject(); // copy values to template template.setErrorMsg(tmp.getErrorMsg()); template.setAppResponse(tmp.getAppResponse()); template.setResponseProps(tmp.getResponseProps()); } input.close(); } catch (IOException e) { throw buildDeserializeError(e.getMessage(), e); } }
@Override public SofaResponse decodeObject(AbstractByteBuf data, Map<String, String> context) throws SofaRpcException { try { UnsafeByteArrayInputStream inputStream = new UnsafeByteArrayInputStream(data.array()); Hessian2Input input = new Hessian2Input(inputStream); // 根据SerializeType信息决定序列化器 Object object; boolean genericSerialize = context != null && isGenericResponse( context.get(RemotingConstants.HEAD_GENERIC_TYPE)); if (genericSerialize) { input.setSerializerFactory(genericSerializerFactory); GenericObject genericObject = (GenericObject) input.readObject(); SofaResponse sofaResponse = new SofaResponse(); sofaResponse.setErrorMsg((String) genericObject.getField("errorMsg")); sofaResponse.setAppResponse(genericObject.getField("appResponse")); sofaResponse.setResponseProps((Map<String, String>) genericObject.getField("responseProps")); object = sofaResponse; } else { input.setSerializerFactory(serializerFactory); object = input.readObject(); } input.close(); return (SofaResponse) object; } catch (IOException e) { throw buildDeserializeError(e.getMessage(), e); } }
@Override public SofaResponse decodeObject(AbstractByteBuf data, Map<String, String> context) throws SofaRpcException { try { UnsafeByteArrayInputStream inputStream = new UnsafeByteArrayInputStream(data.array()); Hessian2Input input = new Hessian2Input(inputStream); // 根据SerializeType信息决定序列化器 Object object; boolean genericSerialize = context != null && isGenericResponse( context.get(RemotingConstants.HEAD_GENERIC_TYPE)); if (genericSerialize) { input.setSerializerFactory(genericSerializerFactory); GenericObject genericObject = (GenericObject) input.readObject(); SofaResponse sofaResponse = new SofaResponse(); sofaResponse.setErrorMsg((String) genericObject.getField("errorMsg")); sofaResponse.setAppResponse(genericObject.getField("appResponse")); sofaResponse.setResponseProps((Map<String, String>) genericObject.getField("responseProps")); object = sofaResponse; } else { input.setSerializerFactory(serializerFactory); object = input.readObject(); } input.close(); return (SofaResponse) object; } catch (IOException e) { throw buildDeserializeError(e.getMessage(), e); } }
/** * 构建rpc错误结果 * * @param errorMsg 错误消息 * @return rpc结果 */ public static SofaResponse buildSofaErrorResponse(String errorMsg) { SofaResponse sofaResponse = new SofaResponse(); sofaResponse.setErrorMsg(errorMsg); return sofaResponse; } }
/** * A->B(当前)->C的场景下,将远程服务端C的RPc异常异步返回给调用者A * * @see SofaResponseCallback#onSofaException(SofaRpcException, String, RequestBase) */ @Override public void sendSofaException(SofaRpcException sofaException) { checkState(); SofaResponse response = new SofaResponse(); response.setErrorMsg(sofaException.getMessage()); sendSofaResponse(response, sofaException); }
@Override public void decodeObjectByTemplate(AbstractByteBuf data, Map<String, String> context, SofaResponse template) throws SofaRpcException { try { UnsafeByteArrayInputStream inputStream = new UnsafeByteArrayInputStream(data.array()); Hessian2Input input = new Hessian2Input(inputStream); // 根据SerializeType信息决定序列化器 boolean genericSerialize = context != null && isGenericResponse( context.get(RemotingConstants.HEAD_GENERIC_TYPE)); if (genericSerialize) { input.setSerializerFactory(genericSerializerFactory); GenericObject genericObject = (GenericObject) input.readObject(); template.setErrorMsg((String) genericObject.getField("errorMsg")); template.setAppResponse(genericObject.getField("appResponse")); template.setResponseProps((Map<String, String>) genericObject.getField("responseProps")); } else { input.setSerializerFactory(serializerFactory); SofaResponse tmp = (SofaResponse) input.readObject(); // copy values to template template.setErrorMsg(tmp.getErrorMsg()); template.setAppResponse(tmp.getAppResponse()); template.setResponseProps(tmp.getResponseProps()); } input.close(); } catch (IOException e) { throw buildDeserializeError(e.getMessage(), e); } }
@Override public SofaResponse decodeObject(AbstractByteBuf data, Map<String, String> context) throws SofaRpcException { try { UnsafeByteArrayInputStream inputStream = new UnsafeByteArrayInputStream(data.array()); Hessian2Input input = new Hessian2Input(inputStream); // 根据SerializeType信息决定序列化器 Object object; boolean genericSerialize = context != null && isGenericResponse( context.get(RemotingConstants.HEAD_GENERIC_TYPE)); if (genericSerialize) { input.setSerializerFactory(genericSerializerFactory); GenericObject genericObject = (GenericObject) input.readObject(); SofaResponse sofaResponse = new SofaResponse(); sofaResponse.setErrorMsg((String) genericObject.getField("errorMsg")); sofaResponse.setAppResponse(genericObject.getField("appResponse")); sofaResponse.setResponseProps((Map<String, String>) genericObject.getField("responseProps")); object = sofaResponse; } else { input.setSerializerFactory(serializerFactory); object = input.readObject(); } input.close(); return (SofaResponse) object; } catch (IOException e) { throw buildDeserializeError(e.getMessage(), e); } }