При инъекции объекта HttpServletRequest в Джерси 2.0 я получаю это исключение ->java.lang.IllegalStateException: Not inside a request scope
.Как я могу назвать один джерси-сервис с другой службы в java? Также как я могу вставить объект HttpServletRequest внутри моего AuthenticationFilter
Я попытался вставить объект HttpServletRequest в AuthenticationFIlter для получения IP-адреса клиента, но он не прошел с превышением исключения, но тот же код отлично работал в jersey 2.2.3 api.
import javax.annotation.Priority;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.Priorities;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.container.ContainerRequestContext;
import javax.ws.rs.container.ContainerRequestFilter;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
import javax.ws.rs.ext.Provider;
@Provider
@Priority(Priorities.AUTHENTICATION)
public class AuthFilter implements ContainerRequestFilter {
@Context
HttpServletRequest request;
public String getClientIP(@Context HttpServletRequest request) {
return request.getRemoteAddr();
}
@Override
public void filter(ContainerRequestContext requestContext) throws IOException {
System.out.println("Filter called.");
clientIP = new AuthFilter().getClientIP(request);
}
}
Что вы пробовали? [Как спросить] (http://stackoverflow.com/help/how-to-ask) – AgataB
Спасибо за ответ. Попробовал вставить объект HttpServletRequest в AuthenticationFIlter для получения IP-адреса клиента, но он не прошел с превышением исключения. Но тот же код работал в джерси 2.2.3 api отлично. – Naresh
Это не Джерси 2.x ('org.glassfish.jersey'). Это Джерси 1.x ('com.sun.jersey.spi'). Вы уверены, что хотите использовать Jersey 1.x? –