2016-09-21 9 views
1

Я хочу создать собственное собственное сообщение об ошибке проверки. Я искал столько форумов, но я не уверен, где я ошибаюсь.MyCustomExceptionMapper Не вызывается - Пользовательская ошибка проверки Сообщение - Джерси Проверка

@Provider 
public class ConstraintViolationExceptionMapper implements ExceptionMapper<ValidationException>{ 
private String field; 
private String code; 
private String message; 

public ConstraintViolationExceptionMapper(){ 
} 

@Override 
public Response toResponse(ValidationException e) { 
    message = e.getMessage(); 
    InvalidRespose invalidRespose = new InvalidRespose(code, message, field); 
    return Response.status(400).entity(invalidRespose).type(MediaType.APPLICATION_JSON).build(); 
} 
} 

класс ресурсов

@POST 
@Path("/increment") 
@Consumes(MediaType.APPLICATION_JSON) 
@Timed 
public Response greetings(@Valid @NotNull @Pattern(regexp = "^[1-9]\\d*$", message = "Should be a positive Number") @PathParam("id") String account_id){ 

    ... 
    ... 
} 

Я зарегистрировал ExceptionMapper в моем Applicationclass, как

environment.jersey().register(new ConstraintViolationExceptionMapper()); 

Я не уверен, где я неправильно.

ответ

1

Мне пришлось отключить Mappers по умолчанию Dropwizard, прежде чем регистрировать свои собственные.

((DefaultServerFactory)rateLimitConfiguration.getServerFactory()).setRegisterDefaultExceptionMappers(false); 

Ссылка Ссылка here