UriInfo オブジェクトを使用した URI に関する情報の取得

Java™ API for RESTful Web Services (JAX-RS) では、UriInfo オブジェクトを使用して要求ヘッダーにアクセスできます。UriInfo オブジェクトは、要求の URI 情報の検索および構築を可能にする手段を提供します。

このタスクについて

注入された UriInfo オブジェクトを JAX-RS ランタイム環境で使用すると、相対 URI および絶対 URI の情報が認識され、変更することができます。@javax.ws.rs.core.Context アノテーションは、コンテキスト・オブジェクトが注入されたことを示します。javax.ws.rs.core.UriInfo インターフェースは、注入対象となるオブジェクトのインターフェースです。UriInfo オブジェクトを使用すると、UriBuilder クラスを使用して絶対 URL および相対 URL を構築できます。

手順

タスクの結果

リソース・メソッドに URI を使用し、UriInfo オブジェクトを使用して URI 情報を構築することができます。

次の例では、ブック・リソースのリストが以下の URL で入手可能です: http://<hostname>:<port>/<context root>/<servlet path>/books。このブック・リソースを参照するために別のリソースが必要な場合は、URL をアプリケーションにハードコーディングするのではなく、UriInfo オブジェクトを使用して、URI を動的に構築する UriBuilder クラスをアプリケーションのリソースに戻します。
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();
      }
}

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxrs_contextobjects_uri
ファイル名:twbs_jaxrs_contextobjects_uri.html