Метод ExceptionMapper toResponse не вызывает
Метод toResponse класса ExceptionMapper не вызывается.
Код
public class PortalExceptionMapper implements ExceptionMapper<ConstraintViolationException> {
@Override
public Response toResponse(ConstraintViolationException exception) {
System.out.println("%%%%%%%%%%%%%%%%%%%%%%%% testing product%%%%%%%%%%%%%%%%%%%%%%%%%%%%");
return Response.status(Response.Status.BAD_REQUEST)
.entity(prepareMessage(exception))
.type("application/json")
.build();
}
private String prepareMessage(ConstraintViolationException exception) {
String msg = "";
for (ConstraintViolation<?> cv : exception.getConstraintViolations()) {
msg+=cv.getPropertyPath()+" "+cv.getMessage()+"\n";
}
return msg;
}
}
================================================== =====
Этот класс исключения Mapper регистрируется на ResourcesConfig
public class PortalApp extends ResourceConfig
{
public PortalApp()
{
register(AccessRequestFilter.class);
packages("org.learn");
register(JacksonFeature.class);
register(PortalExceptionMapper.class);
register(PortalJackson.class);
register(PortalFilter.class);
}
Пожалуйста помоги. Спасибо
1 ответ
Попробуйте пометить свой класс с помощью @Provider:
@Provider
public class PortalExceptionMapper implements ExceptionMapper<ConstraintViolationException> {...}