У меня есть Джерси, предоставляемый Grizzly.Как вводить Grizzly Request в Jersey 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
равна нулю. Я могу вставить контекст в вызываемую фактическую конечную точку, но это довольно грубо и уродливо и на самом деле бесполезно для меня; так как я хочу регистрировать различные запросы. В идеале вы хотели бы получить этот объект Request
на стороне ResponseFilter запроса.
Должен быть простой способ сделать это. Все вопросы/ответы, которые я видел до сих пор, не работают для Grizzly или вводят метод, вызываемый конечной точкой REST. Я не хочу обойти все мои сотни методов, добавляя это в вызов только потому, что я хочу получить IP-адрес!
Так что это за ключ? Что мне не хватает?
Хороший материал спасибо. Ключом к его работе было обернуть его в классе Provider. Это сделало трюк. –
@peeskillet удивительное решение, спасибо вам большое! –