package org.zbus.client.rpc; import java.io.PrintWriter; import java.io.StringWriter; /** * RPC响应,结果或者异常信息(堆栈) * @author 洪磊明(rushmore) * */ public class Response { public static final String KEY_RESULT = "result"; public static final String KEY_STACK_TRACE = "stackTrace"; private Object result; private Throwable error; private String stackTrace; //异常时候一定保证stackTrace设定,判断的逻辑以此为依据 private String encoding = "UTF-8"; public Object getResult() { return result; } public void setResult(Object result) { this.result = result; } public Throwable getError() { return error; } public void setError(Throwable error) { this.error = error; if(error == null) return; StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); if(error.getCause() != null){ error = error.getCause(); } error.printStackTrace(pw); this.stackTrace = sw.toString(); } public String getStackTrace() { return stackTrace; } public void setStackTrace(String stackTrace) { this.stackTrace = stackTrace; } public String getEncoding() { return encoding; } public void setEncoding(String encoding) { this.encoding = encoding; } }