簡體   English   中英

澤西島,在訪問資源之前將響應返回到瀏覽器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM