001/** 002 * @Title: ServiceRuntime.java 003 * @Package net.gdface.service 004 * @Description: TODO 005 * @author guyadong 006 * @date 2015å¹´6月9æ—¥ 下åˆ4:36:32 007 * @version V1.0 008 */ 009package net.gdface.exception; 010 011import java.io.PrintStream; 012import java.io.PrintWriter; 013import java.io.StringWriter; 014//<omit-j2cpp> 015import net.gdface.utils.FaceUtilits; 016//</omit-j2cpp> 017/** 018 * webservice调用产生的è¿è¡Œæ—¶å¼‚常<br> 019 * 调用webservice方法时产生的所有{@link java.lang.RuntimeException}在抛出到webservice客户时被å°è£…在{@link ServiceRuntime}ä¸<br> 020 * 调用 {@link #getServerStackTraceMessage()}å¯ä»¥èŽ·å–æœåŠ¡å™¨ç«¯çš„å †æ ˆé”™è¯¯ä¿¡æ¯<br> 021 * 调用{@link #printServerStackTrace()}输出æœåŠ¡å™¨ç«¯çš„å †æ ˆé”™è¯¯ä¿¡æ¯<br> 022 * @author guyadong 023 * @deprecated non-standard class name,instead use {@link ServiceRuntimeException} 024 * 025 */ 026public class ServiceRuntime extends Exception { 027 /** 028 * ä¿å˜æœåŠ¡å™¨ç«¯é”™è¯¯å †æ ˆä¿¡æ¯ 029 */ 030 private String serverStackTraceMessage = null; 031 032 /** 033 * 034 */ 035 private static final long serialVersionUID = 6222189909743043773L; 036 037 /** 038 * 039 */ 040 public ServiceRuntime() { 041 } 042 043 /** 044 * @param message 045 */ 046 public ServiceRuntime(String message) { 047 super(message); 048 } 049 //<omit-j2cpp> 050 /** 051 * @param message 052 * @param cause 053 */ 054 public ServiceRuntime(String message, Throwable cause) { 055 super(message, FaceUtilits.stripThrowableShell(cause, RuntimeException.class)); 056 fillStackTraceMessage(getCause()); 057 } 058 059 /** 060 * @param cause 061 */ 062 public ServiceRuntime(Throwable cause) { 063 super(FaceUtilits.stripThrowableShell(cause, RuntimeException.class)); 064 fillStackTraceMessage(getCause()); 065 } 066 067 /** 068 * 调用{@link #printStackTrace(PrintWriter)}å°†é”™è¯¯å †æ ˆä¿¡æ¯å˜å…¥ {@link #serverStackTraceMessage} 069 * 070 * @param cause 071 * @see #printStackTrace(PrintWriter) 072 */ 073 private void fillStackTraceMessage(Throwable cause) { 074 if (null != cause) { 075 StringWriter write = new StringWriter(256); 076 PrintWriter pw = new PrintWriter(write); 077 cause.printStackTrace(pw); 078 serverStackTraceMessage = write.toString(); 079 } 080 } 081 082 /** 083 * 输出æœåŠ¡å™¨ç«¯å †æ ˆé”™è¯¯ä¿¡æ¯ 084 * @see #printStackTrace() 085 */ 086 public void printServerStackTrace() { 087 printServerStackTrace(System.err); 088 } 089 090 /** 091 * @param s 092 * @see #printServerStackTrace() 093 * @see #printStackTrace(PrintStream) 094 */ 095 public void printServerStackTrace(PrintStream s) { 096 synchronized (s) { 097 s.println(serverStackTraceMessage); 098 } 099 } 100 101 /** 102 * @param s 103 * @see #printServerStackTrace() 104 * @see #printStackTrace(PrintWriter) 105 */ 106 public void printServerStackTrace(PrintWriter s) { 107 synchronized (s) { 108 s.println(serverStackTraceMessage); 109 } 110 } 111 //</omit-j2cpp> 112 /** 113 * 返回æœåŠ¡å™¨ç«¯å¼‚å¸¸çš„å †æ ˆä¿¡æ¯ 114 * @return serverStackTraceMessage 115 */ 116 public String getServerStackTraceMessage() { 117 return serverStackTraceMessage; 118 } 119 /** 120 * @param serverStackTraceMessage 121 * è¦è®¾ç½®çš„ serverStackTraceMessage 122 */ 123 public void setServerStackTraceMessage(String serverStackTraceMessage) { 124 this.serverStackTraceMessage = serverStackTraceMessage; 125 } 126}