Obtención de información sobre los URI que utilizan objetos UriInfo

Mediante Java™ API for RESTful Web Services (JAX-RS), puede utilizar el objeto UriInfo para acceder a las cabeceras de solicitud. El objeto UriInfo proporciona métodos para permitirle buscar o crear información del URI de una solicitud.

Acerca de esta tarea

Mediante un objeto UriInfo inyectado a través del entorno de ejecución de JAX-RS, conseguirá la información relacionada y absoluta sobre el identificador de recursos uniforme (URI) y que está disponible para modificación. La anotación @javax.ws.rs.core.Context indica que se ha inyectado un objeto de contexto. La interfaz javax.ws.rs.core.UriInfo es la interfaz del objeto que desee inyectar. Puede utilizar el objeto UriInfo para crear URL absolutos y relativos mediante la clase UriBuilder.

Procedimiento

Resultados

El método de recursos puede utilizar el URI y, a continuación, crear información del URI utilizando el objeto UriInfo

Ejemplo

En el ejemplo siguiente, está disponible una lista de recursos de publicaciones en el siguiente URL: http://<nombre_host>:<puerto>/<raíz_contexto>/<vía_acceso_servlet>/books. Supongamos que necesita otro recurso para hacer referencia al recurso de publicaciones. En lugar de codificar el URL de la aplicación, utilice el objeto UriInfo para devolver una clase UriBuilder que cree dinámicamente el URI en los recursos de la aplicación.
import   javax.ws.rs.GET; 
import   javax.ws.rs.Path; 
import   javax.ws.rs.Produces; 
import   javax.ws.rs.core.Context; 
import   javax.ws.rs.core.UriInfo; 
import   javax.ws.rs.core.MediaType; 
  
@Path ( "/books" ) 
public   class  BookListResource   { 
  
     @GET
     @Produces(MediaType.TEXT_PLAIN)
     public   String  getBookList()   {
        return "a list of books";
      }
} 
import java.util.List; 
import java.util.Locale; 
  
import   javax.ws.rs.GET; 
import   javax.ws.rs.Path; 
import   javax.ws.rs.Produces; 
import   javax.ws.rs.core.Context; 
import   javax.ws.rs.core.UriInfo; 
import   javax.ws.rs.core.MediaType; 
  
@Path ( "/allitems" ) 
public   class  AllItemsListResource   { 
  
     @GET
     @Produces(MediaType.TEXT_PLAIN)
     public   String   getLocationOfAllItems(@Context UriInfo uriInfo)   { 
        URI bookListURI = uriInfo.getBaseUriBuilder().path(BookListResource.class).build();
        return Response.ok("The URI to the book list is: " + bookListURI..toASCIIString()).build();
      }
}

Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_contextobjects_uri
File name: twbs_jaxrs_contextobjects_uri.html