package jp.primecloud.auto.api; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.Provider; import jp.primecloud.auto.api.response.ErrorResponse; import jp.primecloud.auto.exception.AutoApplicationException; import jp.primecloud.auto.util.MessageUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @Provider public class ApiExceptionMapper implements ExceptionMapper<Throwable> { private static Log log = LogFactory.getLog(ApiExceptionMapper.class); @Override public Response toResponse(Throwable e) { String message; if (e instanceof AutoApplicationException) { message = e.getMessage(); } else { message = MessageUtils.getMessage("EAPI-000000"); log.error(message, e); } ErrorResponse errorResponse = new ErrorResponse(); errorResponse.setMessage(message); errorResponse.setSuccess(false); return Response.ok(errorResponse, MediaType.APPLICATION_JSON).build(); } }