0

我正在将 Solr(在 Tomcat 服务器上)与 Web 服务一起使用。当最终用户传递 Solr 查询 url 时,请求通过 web 服务并在浏览器中呈现结果。如果出现异常,我会收到 HTTP ERROR 500,然后是浏览器中的跟踪日志。我不希望最终用户看到跟踪日志,但希望在浏览器中显示自定义错误消息。

关于如何实现这一目标的任何想法?

我正在使用的代码片段

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 错误 500 访问 /dqs/query/hrportal/select 时出现问题。原因:服务器错误原因:com.fmr.ctg.hr.hrdh.dqs.execptions.DQSException:在 com.fmr.ctg.hr.hrdh.dqs.rest.QueryService.determineStart 处开始应该是一个数值 >= 0 (QueryService.java:245) 在 com.fmr.ctg.hr.hrdh.dqs.rest.QueryService.selectAll(QueryService.java:74) 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    ...
    ...

浏览器中没有任何堆栈跟踪日志的预期错误消息:

开始应该是一个数值 >= 0

任何指针将不胜感激。

非常感谢!

4

1 回答 1

0

您可以轻松地在代码周围放置一个 try-catch 块并返回自定义错误消息。

查看我用 C# 编写的 web 服务,了解一个想法:

http://amac4.blogspot.com/2013/07/web-service-to-query-solr-rest.html

于 2013-08-28T15:44:25.410 回答