モジュール java.xml.ws
パッケージ javax.xml.ws.spi.http

クラスHttpExchange


  • public abstract class HttpExchange
    extends Object
    このクラスは、一回の交換で、受信するHTTP要求と生成される応答をカプセル化します。 これは、クライアントからの要求の検査と、応答の作成と送信のための方法を提供します。

    ベースとなるリソースを解放または再利用するには、HttpExchangeを閉じておく必要があります。 交換を閉じられなかった場合の影響は定義されていません。

    導入されたバージョン:
    1.7, JAX-WS 2.2
    • フィールドのサマリー

      フィールド 
      修飾子と型 フィールド 説明
      static String REQUEST_CIPHER_SUITE
      標準プロパティ: HTTPSでの要求の受信時の暗号化方式群値
      static String REQUEST_KEY_SIZE
      標準プロパティ: HTTPSでの要求の受信時のアルゴリズムのビット・サイズ
      static String REQUEST_X509CERTIFICATE
      標準プロパティ: 要求に関連付けられているSSL証明書(存在する場合)
    • コンストラクタのサマリー

      コンストラクタ 
      コンストラクタ 説明
      HttpExchange()  
    • フィールドの詳細

      • REQUEST_CIPHER_SUITE

        public static final String REQUEST_CIPHER_SUITE
        標準プロパティ: HTTPSでの要求の受信時の暗号化方式群値

        型: String

        関連項目:
        定数フィールド値
      • REQUEST_KEY_SIZE

        public static final String REQUEST_KEY_SIZE
        標準プロパティ: HTTPSでの要求の受信時のアルゴリズムのビット・サイズ

        型: Integer

        関連項目:
        定数フィールド値
      • REQUEST_X509CERTIFICATE

        public static final String REQUEST_X509CERTIFICATE
        標準プロパティ: 要求に関連付けられているSSL証明書(存在する場合)

        型: java.security.cert.X509Certificate[] この配列の順序は、信頼に基づく昇順として定義されています。 チェーン内の最初の証明書はクライアントによって設定された証明書で、次の証明書は最初の証明書を認証するために使用されます。それ以降も同様です。

        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • HttpExchange

        public HttpExchange()
    • メソッドの詳細

      • getRequestHeaders

        public abstract Map<String,List<String>> getRequestHeaders()
        この要求に組み込まれたHTTPヘッダーを含む不変のマップを返します。 このマップ内のキーはヘッダー名になり、値は、組み込まれた各値を含む文字列のリストになります。これは、複数回指定されたヘッダー、または単一行のカンマで区切られた値のリストを受け入れるヘッダーの値です。 このどちらの場合も、ヘッダー名の値は、要求に組み込まれた順序で表示されます。

        マップ内のキーでは大文字と小文字が区別されません。

        戻り値:
        要求ヘッダーへのアクセスに使用できる不変のマップ
      • getRequestHeader

        public abstract String getRequestHeader​(String name)
        指定された要求ヘッダーの値を返します。 指定された名前のヘッダーが要求にない場合、このメソッドはnullを返します。 同じ名前のヘッダーが複数存在する場合、このメソッドは要求内の最初のヘッダーを返します。 ヘッダー名では、大文字と小文字を区別しません。 getRequestHeaders()を使用する代わりに、ヘッダーを取得するための簡易メソッドです。
        パラメータ:
        name - 要求ヘッダーの名前
        戻り値:
        要求されたヘッダーの値を返す。要求にその名前のヘッダーがない場合はnull
      • getResponseHeaders

        public abstract Map<String,List<String>> getResponseHeaders()
        HTTP応答ヘッダーを格納でき、この応答の一部として送信される、変更可能なマップを返します。 マップ内のキーはヘッダー名になり、値は、各値を含む文字列のリストにする必要があります。その文字列は、複数回組み込む各値が、組み込む順序で含まれます。

        マップ内のキーでは大文字と小文字が区別されません。

        戻り値:
        応答ヘッダーの設定に使用できる不変のマップ
      • addResponseHeader

        public abstract void addResponseHeader​(String name,
                                               String value)
        指定された名前と値を持つ応答ヘッダーを追加します。 このメソッドにより、応答ヘッダーに複数の値を設定することができるようになります。 getResponseHeaders()を使用する代わりに、応答ヘッダーを追加するための簡易メソッドです。
        パラメータ:
        name - ヘッダーの名前
        value - 追加のヘッダー値。 オクテット文字列を含む場合は、RFC 2047 (http://www.ietf.org/rfc/rfc2047.txt)に従ってエンコードするようにする
        関連項目:
        getResponseHeaders()
      • getRequestURI

        public abstract String getRequestURI()
        HTTP要求の最初の行にあるこの要求のURIの、プロトコル名からクエリー文字列までの部分を返します。 コンテナはこの文字列をデコードしません。
        戻り値:
        要求URI
      • getContextPath

        public abstract String getContextPath()
        アプリケーション内のすべての端点のコンテキスト・パスを返します。 このパスは、要求のコンテキストを示す、要求URIの一部です。 コンテキスト・パスは常に、要求URIの先頭にあります。 パスは「/」で始まりますが、「/」で終わりません。 このメソッドが""を返す場合は、デフォルト・コンテキストを要求しています。 コンテナはこの文字列をデコードしません。

        コンテキスト・パスは、端点のアドレスを計算するために使用されます。 HttpContext.getPath()を参照してください。

        戻り値:
        アプリケーション内のすべての端点のコンテキスト・パス
        関連項目:
        HttpContext.getPath()
      • getRequestMethod

        public abstract String getRequestMethod()
        HTTP要求メソッドを取得します
        戻り値:
        要求メソッド
      • getHttpContext

        public abstract HttpContext getHttpContext()
        この交換のHttpContextを返します。 コンテナは、要求と関連する端点のHttpContextを一致させます
        戻り値:
        この交換のHttpContext
      • close

        public abstract void close()
                            throws IOException
        これは、交換を終了するために呼び出す必要があります。 コンテナは、要求と応答ストリームを閉じます。 コンテナがベースとなるリソースを解放または再利用できるよう、これを呼び出す必要があります。
        例外:
        IOException - 入出力エラーが発生した場合
      • getRequestBody

        public abstract InputStream getRequestBody()
                                            throws IOException
        要求本体を読み込むことができるストリームを返します。 このメソッドを複数回呼び出した場合でも、同じストリームが返されます。
        戻り値:
        要求本体を読み取ることができるストリーム。
        例外:
        IOException - 要求の処理中に入出力エラーが発生した場合
      • getResponseBody

        public abstract OutputStream getResponseBody()
                                              throws IOException
        応答本体の書込み先となるストリームを返します。このメソッドを呼び出す前にsetStatus(int)を呼び出す必要があります。 同一の交換用にこのメソッドを複数回呼び出した場合でも、同じストリームが返されます。
        戻り値:
        応答本体の書込み先のストリーム
        例外:
        IOException - 応答の処理中に入出力エラーが発生した場合
      • setStatus

        public abstract void setStatus​(int status)
        この応答のHTTPステータス・コードを設定します。

        このメソッドは、getResponseBody()を呼び出す前に呼び出す必要があります。

        パラメータ:
        status - 送信する応答コード
        関連項目:
        getResponseBody()
      • getRemoteAddress

        public abstract InetSocketAddress getRemoteAddress()
        この要求を呼び出すリモート・エンティティの未解決のアドレスを返します。
        戻り値:
        呼出し側のInetSocketAddress
      • getLocalAddress

        public abstract InetSocketAddress getLocalAddress()
        要求を受信した未解決のローカル・アドレスを返します。
        戻り値:
        ローカル・インタフェースのInetSocketAddress
      • getProtocol

        public abstract String getProtocol()
        protocol/majorVersion.minorVersionの形式で要求からのプロトコル文字列を返します。 たとえば、「HTTP/1.1」です。
        戻り値:
        要求からのプロトコル文字列
      • getScheme

        public abstract String getScheme()
        たとえばhttpまたはhttpsのように、この要求に使用されるスキームの名前を返します。
        戻り値:
        この要求を行うために使用されたスキーム名
      • getPathInfo

        public abstract String getPathInfo()
        要求URI内でWebサービスのパスの後ろからクエリー文字列の前までの位置に書かれ、「/」で始まる追加のパス情報を返します。

        これはMessageContext.PATH_INFOに使用できます

        戻り値:
        Webサービスの、デコードされた追加のパス情報。 Webサービス・パスと要求URIのクエリー文字列の間のパスで、要求URIに追加のパスがない場合はnull
      • getQueryString

        public abstract String getQueryString()
        要求URI内のパスの後ろに含まれているクエリー文字列を返します。

        これはMessageContext.QUERY_STRINGに使用できます

        戻り値:
        要求URIのデコードされていないクエリー文字列。要求URIにクエリー文字列がない場合はnull
      • getAttribute

        public abstract Object getAttribute​(String name)
        このHttpExchangeに関連付けられた属性を返します。 そうすると、JAX-WSハンドラと端点はMessageContextを使用して属性にアクセスすることができます。

        サーブレット・コンテナは、属性としてMessageContext.SERVLET_CONTEXTMessageContext.SERVLET_REQUEST、およびMessageContext.SERVLET_RESPONSEを公開する必要があります。

        コンテナがHTTPSを使用して要求を受け付けると、属性として次の情報が公開される必要があります。 属性とはREQUEST_CIPHER_SUITEおよびREQUEST_KEY_SIZEです。 要求に関連付けられたSSL証明書がある場合は、REQUEST_X509CERTIFICATEを使用して公開する必要があります。

        パラメータ:
        name - 属性名
        戻り値:
        属性値。属性が存在しない場合はnull
      • getAttributeNames

        public abstract Set<String> getAttributeNames()
        このHttpExchangeに関連付けられたすべての属性名を示します。
        戻り値:
        すべての属性名のセット
        関連項目:
        getAttribute(String)
      • getUserPrincipal

        public abstract Principal getUserPrincipal()
        このHttpExchangeに対して認証されたユーザーを表すPrincipalを返します。
        戻り値:
        認証されたユーザーのプリンシパル。ユーザーが認証されていない場合はnull
      • isUserInRole

        public abstract boolean isUserInRole​(String role)
        認証されたユーザーが指定された論理的な「ロール」に含まれているかどうかを示します。
        パラメータ:
        role - ロールの名前を指定する
        戻り値:
        この要求を行っているユーザーが、指定のロールに属する場合はtrue