我有澤西由灰熊提供。如何向澤西島注入灰熊請求ContainerRequestFilter
我有一個ContainerRequestFilter
實現類。但是,該類爲所有傳入請求創建一次。因此,請執行以下操作:
public class EndpointRequestFilter implements ContainerRequestFilter {
@Context
private org.glassfish.grizzly.http.server.Request requestContext;
public void filter(ContainerRequestContext req) throws IOException {
// remove for sake of example
}
}
requestContext
爲空。我可以將上下文注入到被調用的實際端點中,但這相當粗糙和醜陋,對我來說真的沒有用處;因爲我想記錄各種請求。理想情況下,希望在請求的ResponseFilter端獲得此Request
對象。
必須有一個簡單的方法來做到這一點。到目前爲止,我所見過的所有問題/答案對於Grizzly都不起作用,或者注入了REST端點調用的方法。我不想在我的數百種方法中加入這個方法,只是因爲我想獲取IP地址!
那麼這裏的關鍵是什麼?我錯過了什麼?
好東西謝謝。讓它工作的關鍵是將其包裝在Provider類中。這完成了這個伎倆。 –
@peeskillet驚人的解決方案,非常感謝! –