我正在为我的RESTful服务使用Jersey框架。
我的每个资源类都继承了一个基类,我的基类里面的URL参数验证很少,所以如果我发现URL中缺少一个必填字段,我想在我的基类中停止流程(即不想去我的资源方法并从我的基类返回对浏览器的响应)。
目前我无法做到这一点,即使我尝试做例如像下面这样的事情回到浏览器中缺少参数消息,它仍然没有进入资源类Web服务方法被称为:
return Response.status(Response.Status.BAD_REQUEST)
.entity("Parameter value missing for "+ StringHelper.ArrayToString(requiredParametersValueMissing))
.build();
你们面临的任何想法或类似情况。投入赞赏。
答案 0 :(得分:0)
您可以像这样抛出WebApplicationException:
throw new javax.ws.rs.WebApplicationException(javax.ws.rs.core.Response
.status(javax.ws.rs.core.Response.Status.BAD_REQUEST)
.entity("Parameter value missing for ").type("text/html").build());
我通过扩展com.sun.jersey.spi.container.servlet.ServletContainer并从HttpServletRequest解析出params来处理你想要做的事情。如果我发现错误,我打电话
return super.service(baseUri, requestUri, request, response);
这是你在基类中做的吗?