Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jersey中的自定义ValidationError类仅发送字符串错误消息_Java_Jersey_Jax Rs - Fatal编程技术网

Java jersey中的自定义ValidationError类仅发送字符串错误消息

Java jersey中的自定义ValidationError类仅发送字符串错误消息,java,jersey,jax-rs,Java,Jersey,Jax Rs,jersey2.x的ValidationError类如下所示 @XmlRootElement public final class ValidationError {  private String message;     private String messageTemplate;     private String path;     private String invalidValue;       ... } Contact with given ID does not exi

jersey2.x的ValidationError类如下所示

@XmlRootElement
public final class ValidationError {
 private String message;
    private String messageTemplate;
    private String path;
    private String invalidValue;
 
    ...
}
Contact with given ID does not exist. (path = ContactCardResource.getContact.<return value>, invalidValue = null)
当发生错误时,返回如下字符串

@XmlRootElement
public final class ValidationError {
 private String message;
    private String messageTemplate;
    private String path;
    private String invalidValue;
 
    ...
}
Contact with given ID does not exist. (path = ContactCardResource.getContact.<return value>, invalidValue = null)
具有给定ID的联系人不存在。(path=ContactCardResource.getContact.,invalidValue=null)
但我需要的是客户端的一致错误消息响应接口。它应该只发送字符串消息。所以这不应该包括类名和方法名。对于一些不依赖于bean验证的验证,例如重复用户名。我只发送带有400或500状态码的字符串。我想对Bean验证做同样的事情,如何实现这一点

Bean验证抛出
ConstraintViolationException
,您可以编写一个自定义异常映射器来处理
ConstraintViolationException
,如下所示

@Singleton
@Provider
public class ConstraintViolationMapper implements ExceptionMapper<ConstraintViolationException> {

@Override
public Response toResponse(ConstraintViolationException e) {
    // There can be multiple constraint Violations
    Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
    List<String> messages = new ArrayList<>();
    for (ConstraintViolation<?> violation : violations) {
        messages.add(violation.getMessage());

    }
    return Response.status(Status.BAD_REQUEST).entity(StringUtils.join(messages,";")).build();
}

}
@Singleton
@提供者
公共类ConstraintViolationMapper实现ExceptionMapper{
@凌驾
公众对响应的响应(约束性事件例外){
//可能存在多个约束冲突

设置Bean验证抛出
ConstraintViolationException
,您可以编写一个自定义异常映射器来处理
ConstraintViolationException
,如下所示

@Singleton
@Provider
public class ConstraintViolationMapper implements ExceptionMapper<ConstraintViolationException> {

@Override
public Response toResponse(ConstraintViolationException e) {
    // There can be multiple constraint Violations
    Set<ConstraintViolation<?>> violations = e.getConstraintViolations();
    List<String> messages = new ArrayList<>();
    for (ConstraintViolation<?> violation : violations) {
        messages.add(violation.getMessage());

    }
    return Response.status(Status.BAD_REQUEST).entity(StringUtils.join(messages,";")).build();
}

}
@Singleton
@提供者
公共类ConstraintViolationMapper实现ExceptionMapper{
@凌驾
公众对响应的响应(约束性事件例外){
//可能存在多个约束冲突
设置