0
我在新泽西州2.26以下RequestEventListener:Get请求IP泽西请求事件监听器
package com.myapp.webservice;
import org.glassfish.grizzly.http.server.Request;
import org.glassfish.jersey.server.monitoring.RequestEvent;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ws.rs.core.Context;
public class RequestEventListener implements org.glassfish.jersey.server.monitoring.RequestEventListener {
private static final Logger logger = LoggerFactory.getLogger(RequestEventListener.class);
private final long startTime;
@Context
private javax.inject.Provider<Request> request;
RequestEventListener() {
startTime = System.currentTimeMillis();
}
@Override
public void onEvent(RequestEvent requestEvent) {
switch(requestEvent.getType()) {
case RESOURCE_METHOD_START:
try {
logger.info("HTTPRequest {} /{} {}", requestEvent.getContainerRequest().getMethod(), requestEvent.getContainerRequest().getUriInfo().getPath(), request.get().getRemoteAddr());
} catch (Exception e) {
logger.error("Exception {}", e);
}
break;
case FINISHED:
logger.info("HTTPResponse {} /{} {}", requestEvent.getContainerResponse().getLength(), requestEvent.getContainerRequest().getUriInfo().getPath(), System.currentTimeMillis() - startTime);
break;
}
}
}
我试图注入灰熊HTTP请求对象,当我使用RequestFilter而不是一个事件监听其工作原理类似。但是我得到关于request
对象的NullPointerException。
是否有可能在RequestEventListener中以该(或任何其他)方式获取请求的IP地址?
由于提前, 罗布