如何捕获javax.ws.rs.NotAllowedExeption?

时间:2018-02-28 01:14:49

标签: java rest jax-rs

当我使用GET访问我的JAX-RS Web服务时,以及GET不存在的路径(即http://localhost:8080/myservice/rest/report),我遇到了错误javax.ws.rs.NotAllowedExeption。 我该怎么理解?

我的班级看起来像这样:

@Path("/report")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class ReportResource {
    @GET
    @Path("/single/{reportId}")
    public Report getReport(@PathParam("reportId") String reportId) {
        System.out.println("GET Report single");
        return Mock.getReport(reportId);
    }

    ...

}

1 个答案:

答案 0 :(得分:1)

您可以像这样使用ExceptionMapper

@Provider
public class NotAllowedMapper
     implements ExceptionMapper< NotAllowedExeption > {

   public Response toResponse(NotAllowedExeption e) {
      return Response.status(Response.Status.NOT_FOUND).build();
   }
}

请记住,对于各种HTTP错误情况,存在一个很好的异常层次结构。您可以在此处查看以及处理异常的其他选项。

https://dennis-xlc.gitbooks.io/restful-java-with-jax-rs-2-0-en/cn/part1/chapter7/exception_handling.html

让我知道它是否有效!