2013-08-28 38 views
0

我正在使用Solr(在Tomcat服務器上)和Webservices。當最終用戶傳遞Solr查詢url時,請求將通過webservice並在瀏覽器中呈現結果。 如果出現異常,我將收到HTTP ERROR 500,然後是瀏覽器中的跟蹤日誌。我不希望最終用戶看到跟蹤日誌,但希望在瀏覽器中顯示自定義錯誤消息。Solr - 異常處理

關於如何實現這一點的任何想法?

代碼片段,我使用

private Integer determineStart(final String start) throws DQSException { 
     Integer intValue = null; 
     try{ 
      intValue = Integer.valueOf(start) ; 
      return intValue; 
     } 
     catch(NumberFormatException e){ 
      throw new DQSException(
        "Start should be a Numeric value >= 0"); 
     } 
    } 

定製異常

public class DQSException extends Exception { 

    /** 
    * 
    */ 
    private static final long serialVersionUID = 7669894738044609438L; 

    public DQSException(String message, Throwable e) { 
     super(message,e); 
    } 

    public DQSException(String message) { 
     super(message); 
    } 

} 

異常在瀏覽器

HTTP ERROR 500 問題訪問/ DQS /曲ERY/hrportal /選擇。原因:服務器錯誤 導致:com.fmr.ctg.hr.hrdh.dqs.execptions.DQSException:開始應該是數字值> = 0 at com.fmr.ctg.hr.hrdh.dqs.rest.QueryService .determineStart(QueryService.java:245) 在com.fmr.ctg.hr.hrdh.dqs.rest.QueryService.selectAll(QueryService.java:74) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本機方法)

在瀏覽器中
... 
    ... 

預期的錯誤消息而沒有任何堆棧跟蹤日誌:

開始應該是一個數值> = 0

任何指針將非常感激。

非常感謝!

+0

請讓我們知道你有沒有想過的。 – sidgate

+0

我嘗試在web.xml中添加以下代碼片段。但沒有運氣。不知道這樣做是否有意義! \t <異常型> java.lang.Exception的 \t /error.jsp error.jsp文件 --------- <%@頁isErrorPage = 「真」 進口= 「java.io. *」 的contentType = 「text/plain的」 %> 消息: <%= exception.getMessage()%> 堆棧跟蹤: <% \t的StringWriter的StringWriter =新的StringWriter(); 012W\t PrintWriter printWriter = new PrintWriter(stringWriter); \t exception.printStackTrace(printWriter); \t out。的println(StringWriter的); %> – Techie

回答