package edu.harvard.iq.dataverse.api.errorhandlers; import javax.json.Json; import javax.servlet.http.HttpServletRequest; import javax.ws.rs.NotAllowedException; import javax.ws.rs.core.Context; import javax.ws.rs.core.Response; import javax.ws.rs.ext.ExceptionMapper; import javax.ws.rs.ext.Provider; @Provider public class NotAllowedExceptionHandler implements ExceptionMapper<NotAllowedException>{ @Context HttpServletRequest request; @Override public Response toResponse(NotAllowedException ex){ String uri = request.getRequestURI(); return Response.status(405) .entity( Json.createObjectBuilder() .add("status", "ERROR") .add("code", 405) .add("message", "'" + uri + "' endpoint does not support method '"+request.getMethod()+"'. Consult our API guide at http://guides.dataverse.org.") .build()) .type("application/json").build(); } }