0

我正在为我的 RESTful 服务使用 Jersey 框架。

我的每个资源类都继承了一个基类,我的基类中几乎没有 URL 参数验证,所以如果我发现 URL 中缺少必填字段,我想停止我的基类中的流程(即 Don '不想去点击我的资源方法并从我的基类返回对浏览器的响应)。

目前我无法做到这一点,即使我尝试例如执行以下操作以返回缺少参数消息的浏览器,它也不会并且仍然会点击被调用的资源类 Web 服务方法:

return Response.status(Response.Status.BAD_REQUEST)
               .entity("Parameter value missing for "+ StringHelper.ArrayToString(requiredParametersValueMissing))
               .build();

你们面临的任何想法或类似情况。输入赞赏。

4

1 回答 1

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 解析出参数来处理您想要做的事情。如果我发现错误,我会打电话

return super.service(baseUri, requestUri, request, response);

这是您在基类中所做的吗?

于 2013-04-17T00:23:53.300 回答