Jersey MultiException会出现什么并发症?

时间:2015-06-29 01:51:20

标签: java jersey jersey-2.0

我有一个Jersey REST端点,它有一个PathParam,我需要在任何方法继续之前进行验证。下面是一个GET的代码示例,但想象一下,还有一个POST,一个PUT,DELETE等,每个都需要验证路径中的“order_id”。

相反,可以像下面那样,@ PathParam注释应用于如果“order_id”不存在则抛出404的方法。

但是,在调用@GET方法之前发生异常时,抛出Jersey MultiException,第一个是下面的validate方法中的NotFoundException,第二个是“IllegalStateException”,因为无法调用@GET方法

目前,结果是适当的404响应,但我担心这不一致。这是一种可接受的模式吗?是否有引起关注的副作用?

@Path("/orders/{order_id}/items")
public ItemsResource {

  @Inject
  private OrderService orderService;

  private String orderId;

  @PathParam("order_id")
  private void validateAndSetOrderId(String orderId) {
    if (orderService.getOrder(orderId) == null) {
      throw new NotFoundException("Order not found.");
    }
    this.orderId = orderId;
  }

  @GET
  public Response getItems() {
    // could validate the order_id here if @PathParam were on the variable
    return orderService.getItems(this.orderId);
  }
}

0 个答案:

没有答案