Post

RESTful ConstraintViolationMapper

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class ConstraintViolationMapper implements ExceptionMapper<ConstraintViolationException> {

	@Override
	public Response toResponse(ConstraintViolationException exception) {
		// Extract constraint violations
		Set<ConstraintViolation<?>> violations = exception.getConstraintViolations();

		// Construct error messages
		List<String> messages = new ArrayList<>();
		for (ConstraintViolation<?> violation : violations) {
			messages.add(violation.getMessage());
		}

		// Construct custom error response
		return Response.status(Response.Status.BAD_REQUEST)
				.entity(new RestErrorResponse(String.join(",", messages)))
				.type(MediaType.APPLICATION_JSON)
				.build();
	}
}
This post is licensed under CC BY 4.0 by the author.