在泽西休息服务中返回错误列表

时间:2016-03-01 06:12:21

标签: java jersey-2.0

在我们的项目中,我们使用休息服务(泽西岛)。在其中一个要求中,我想将缺少的必需参数列表返回给客户端。 现在我正在使用异常映射器,它可以返回单个错误消息,

public class MandatoryParameterMissingException extends RuntimeException {

    private static final long serialVersionUID = 1L;


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


public class MandatoryParamMissingExceptionMapper implements ExceptionMapper<MandatoryParameterMissingException> {

    @Override
    public Response toResponse(MandatoryParameterMissingException ex) {
        ErrorMessage errorMessage = new ErrorMessage(ex.getMessage(), 404, "Document source:todo");
        return Response.status(Status.NOT_FOUND)
                .entity(errorMessage)
                .build();
    }

private String errorMessage;
    private int errorCode;
    private String documentation;

    public ErrorMessage() {

    }

    public ErrorMessage(String errorMessage, int errorCode, String documentation) {
        super();
        this.errorMessage = errorMessage;
        this.errorCode = errorCode;
        this.documentation = documentation;
    }

.. getter setters

如果我发现任何遗漏的强制性参数,现在我正在做类似的事情,

if (emailID == null) {
            throw new MandatoryParameterMissingException("Email id is missing");
        }

有人可以建议增强此功能以获取错误消息列表并将其传回客户端的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

对于这个问题,我创建了一个名为ValidationException的类。 ValidationException包含ValidationError列表。

存在不同类型的ValidationError,例如OutOfRangeError,MandatoryParameterError以及您需要的任何内容。 ValidationError始终包含特定属性(客户端为用户创建有意义的消息文本所需的全部内容)=&gt; MandatoryParameterError只是字段的名称,OutOfRangeError是字段的名称和允许的范围。

在服务器端有验证器(在公共包中,因此客户端可以自行进行验证)......验证器在验证数据期间创建ValidationErrors。如果存在验证错误,则抛出ValidationException。就是这样。我可以给你一些代码片段......