Close

JAX-RS - ExceptionMapper Examples

JAX-RS JAVA EE 

package com.logicbig.example;

import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class InvalidIdExceptionMapper
implements ExceptionMapper<InvalidIdException> {


@Override
public Response toResponse(InvalidIdException exception) {
return Response.status(Response.Status.NOT_FOUND)
.entity(prepareMessage(exception))
.type("text/plain")
.build();
}

private String prepareMessage(InvalidIdException exception) {

String m = exception.getMessage();
String r = "Invalid request.\n";
r += String.format("Error Message: %s.%nError Type: %s.%n"
+ "You may contact admin@example.com for more questions.",
m, exception.getClass());
return r;
}
}
Original Post




import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;

@Provider
public class MyExceptionMapper
implements ExceptionMapper<ConstraintViolationException> {

@Override
public Response toResponse(final ConstraintViolationException exception) {
return Response.status(Response.Status.BAD_REQUEST)
.entity(prepareMessage(exception))
.type("text/plain")
.build();
}

private String prepareMessage(ConstraintViolationException exception) {
String msg = "";
for (ConstraintViolation<?> cv : exception.getConstraintViolations()) {
msg+=cv.getPropertyPath()+" "+cv.getMessage()+"\n";
}
return msg;
}
}
Original Post




See Also