我正在使用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
任何指針將非常感激。
非常感謝!
請讓我們知道你有沒有想過的。 – sidgate
我嘗試在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