Informationen zu URIs mit UriInfo-Objekten abrufen

Mit JAX-RS (Java™ API for RESTful Web Services) können Sie das UriInfo-Objekt verwenden, um auf Anforderungsheader zuzugreifen. Das UriInfo-Objekt stellt Methoden bereit, mit denen Sie URI-Informationen einer Anforderung lokalisieren oder erstellen können.

Informationen zu diesem Vorgang

Wenn Sie ein von der JAX-RS-Laufzeitumgebung eingefügtes UriInfo-Objekt verwenden, hat das den Vorteil, dass der relative und der absolute URI bekannt ist und geändert werden kann. Die Annotation "@javax.ws.rs.core.Context" zeigt an, dass ein Kontextobjekt eingefügt ist. Die Schnittstelle "javax.ws.rs.core.UriInfo" ist die Schnittstelle des Objekts, das Sie einfügen möchten. Sie können das UriInfo-Objekt verwenden, um absolute und relative URLs mit der UriBuilder-Klasse zu erstellen.

Vorgehensweise

Ergebnisse

Die Ressourcenmethode kann den URI verwenden und dann URI-Informationen mit dem UriInfo-Objekt erstellen.

Beispiel

Im folgenden Beispiel ist eine Liste mit Buchressourcen unter dem folgenden URL verfügbar: http://<Hostname>>:<Port>>/<Kontextstammverzeichnis>>/<Servletpfad>>/books.  Angenommen, Sie benötigen eine weitere Ressource zur Referenzierung der Buchressourcen. Anstatt den URL in der Anwendung fest zu codieren, können Sie mit dem UriInfo-Objekt eine UriBuilder-Klasse zurückgeben, die dynamisch den URI von Ressourcen in der Anwendung erstellt.
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();
      }
}

Symbol, das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_contextobjects_uri
Dateiname:twbs_jaxrs_contextobjects_uri.html