UriInfo (za pomocą którego jest możliwe wyciągnięcie całego URI) można wstrzyknąć za pomocą adnotacji @Context jako pole klasy:
package pl.marceen.test.boundary;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
@Stateless
@Path("test")
public class TestRestReceiver {
private final static Logger logger = LoggerFactory.getLogger(TestRestReceiver.class);
@Context
private UriInfo uriInfo;
@GET
@Path("logStatus")
public String logStatus() {
logger.info("Path: {}", uriInfo.getAbsolutePath());
return "OK";
}
}
Można wstrzyknąć UriInfo również jako atrybut metody:
package pl.marceen.test.boundary;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.UriInfo;
@Stateless
@Path("test")
public class TestRestReceiver {
private final static Logger logger = LoggerFactory.getLogger(TestRestReceiver.class);
@GET
@Path("logStatus")
public String logStatus(@Context UriInfo uriInfo) {
logger.info("Path: {}", uriInfo.getAbsolutePath());
return "OK";
}
}