[英]Jersey, return response to browser before hitting the resource
我正在為我的RESTful服務使用Jersey框架。
我的每個資源類都繼承了一個基類,我在基類中很少進行URL參數驗證,因此,如果我發現URL中缺少必填字段,我想停止基類中的流程(例如Don不想去打我的資源方法,並從我的基類返回對瀏覽器的響應)。
目前,我無法做到這一點,即使我嘗試執行類似以下操作,然后返回帶有缺失參數消息的瀏覽器,它也不會繼續運行並擊中被稱為的資源類Web服務方法:
return Response.status(Response.Status.BAD_REQUEST)
.entity("Parameter value missing for "+ StringHelper.ArrayToString(requiredParametersValueMissing))
.build();
你們面臨的任何想法或類似情況。 輸入贊賞。
您可以這樣拋出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);
這是您在基類中正在做的事情嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.