パッケージ jakarta.xml.ws.spi.http

クラス HttpExchange


  • public abstract class HttpExchange
    extends ObjectSE
    このクラスは、受信した HTTP リクエストと生成されるレスポンスを 1 つの交換でカプセル化します。これは、クライアントからのリクエストを調べ、レスポンスを作成して送信するためのメソッドを提供します。

    基礎となるリソースを解放または再利用するには、HttpExchange を閉じる必要があります。取引所の閉鎖に失敗した場合の影響は定義されていません。

    導入:
    1.7、JAX-WS 2.2
    作成者:
    Jitendra Kotamraju
    • フィールドの詳細

      • REQUEST_CIPHER_SUITE

        public static final StringSE REQUEST_CIPHER_SUITE
        標準プロパティ: HTTPS 経由でリクエストを受信したときの暗号スイートの値

        タイプ: String

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

        public static final StringSE REQUEST_KEY_SIZE
        標準プロパティ: HTTPS 経由でリクエストを受信したときのアルゴリズムのビットサイズ

        タイプ: 整数

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

        public static final StringSE REQUEST_X509CERTIFICATE
        標準プロパティ: リクエストに関連付けられている SSL 証明書(ある場合)

        タイプ: java.security.cert.X509Certificate[] この配列の順序は、信頼度の昇順として定義されます。チェーンの最初の証明書はクライアントによって設定された証明書であり、次の証明書は最初の証明書を認証するために使用される証明書、というように続きます。

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

      • HttpExchange

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

      • getRequestHeaders

        public abstract MapSE<StringSE,​ListSE<StringSE>> getRequestHeaders()
        このリクエストに含まれていた HTTP ヘッダーを含む不変のマップを返します。このマップのキーはヘッダー名になり、値は含まれている各値を含む文字列のリストになります(複数回リストされたヘッダー、またはコンマで区切られた値のリストを受け入れるヘッダーのいずれか)単一行)。いずれの場合も、ヘッダー名の値は、リクエストに含まれている順序で表示されます。

        Map のキーでは、大文字と小文字は区別されません。

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

        public abstract StringSE getRequestHeader​(StringSE name)
        指定されたリクエストヘッダーの値を返します。リクエストに指定された名前のヘッダーが含まれていなかった場合、このメソッドは null を返します。同じ名前のヘッダーが複数ある場合、このメソッドはリクエストの最初のヘッダーを返します。ヘッダー名では大文字と小文字は区別されません。これは、(getRequestHeaders() を使用する代わりに)ヘッダーを取得するための便利なメソッドです。
        パラメーター:
        name - リクエストヘッダーの名前
        戻り値:
        リクエストされたヘッダーの値を返します。リクエストにその名前のヘッダーがない場合は null を返します
      • getResponseHeaders

        public abstract MapSE<StringSE,​ListSE<StringSE>> getResponseHeaders()
        HTTP レスポンスヘッダーを格納でき、このレスポンスの一部として送信される可変マップを返します。マップ内のキーはヘッダー名になりますが、値は、複数回含める必要がある各値を含む文字列のリストである必要があります(含まれる順序で)。

        Map のキーでは、大文字と小文字は区別されません。

        戻り値:
        レスポンスヘッダーを設定するために使用できる可変マップ。
      • addResponseHeader

        public abstract void addResponseHeader​(StringSE name,
                                               StringSE value)
        指定された名前と値でレスポンスヘッダーを追加します。このメソッドを使用すると、レスポンスヘッダーに複数の値を設定できます。これは、(getResponseHeaders() を使用する代わりに)レスポンスヘッダーを追加するための便利なメソッドです。
        パラメーター:
        name - ヘッダーの名前
        value - 追加のヘッダー値。オクテット文字列が含まれている場合は、RFC2047 に従ってエンコードする必要があります (http://www.ietf.org/rfc/rfc2047.txt)
        関連事項:
        getResponseHeaders()
      • getRequestURI

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

        public abstract StringSE getContextPath()
        アプリケーション内のすべてのエンドポイントのコンテキストパスを返します。このパスは、リクエストのコンテキストを示すリクエスト URI の部分です。コンテキストパスは常にリクエスト URI の最初に来ます。パスは "/" 文字で始まりますが、"/" 文字で終わりません。このメソッドが "" を返す場合、リクエストはデフォルトのコンテキストに対するものです。コンテナーはこの文字列をデコードしません。

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

        戻り値:
        アプリケーション内のすべてのエンドポイントのコンテキストパス
        関連事項:
        HttpContext.getPath()
      • getRequestMethod

        public abstract StringSE getRequestMethod()
        HTTP リクエストメソッドを取得する
        戻り値:
        リクエストメソッド
      • getHttpContext

        public abstract HttpContext getHttpContext()
        この交換の HttpContext を返します。コンテナーは、リクエストを関連するエンドポイントの HttpContext と照合します
        戻り値:
        この交換のための HttpContext
      • close

        public abstract void close()
                            throws IOExceptionSE
        交換を終了するには、これを呼び出す必要があります。コンテナーは、リクエストストリームとレスポンスストリームのクローズを処理します。コンテナーが基礎となるリソースを解放または再利用できるように、これを呼び出す必要があります。
        例外:
        IOExceptionSE - I/O エラーがある場合
      • getRequestBody

        public abstract InputStreamSE getRequestBody()
                                            throws IOExceptionSE
        リクエスト本文を読み取ることができるストリームを返します。このメソッドを複数回呼び出すと、同じストリームが返されます。
        戻り値:
        リクエスト本文を読み取ることができるストリーム。
        例外:
        IOExceptionSE - リクエスト処理中に I/O エラーが発生した場合
      • getResponseBody

        public abstract OutputStreamSE getResponseBody()
                                              throws IOExceptionSE
        レスポンス本文を書き込む必要のあるストリームを返します。このメソッドを呼び出す前に、setStatus(int))を呼び出す必要があります。このメソッドを(同じ交換に対して)複数回呼び出すと、同じストリームが返されます。
        戻り値:
        レスポンス本文が書き込まれるストリーム
        例外:
        IOExceptionSE - レスポンス処理中に I/O エラーが発生した場合
      • setStatus

        public abstract void setStatus​(int status)
        レスポンスの HTTP ステータスコードを設定します。

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

        パラメーター:
        status - 送信するレスポンスコード
        関連事項:
        getResponseBody()
      • getRemoteAddress

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

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

        public abstract StringSE getProtocol()
        リクエストからのプロトコル文字列を protocol/majorVersion.minorVersion の形式で返します。例: "HTTP/1.1"
        戻り値:
        リクエストからのプロトコル文字列
      • getScheme

        public abstract StringSE getScheme()
        このリクエストを行うために使用されたスキームの名前を返します(例: http または https)。
        戻り値:
        このリクエストを行うために使用されたスキームの名前
      • getPathInfo

        public abstract StringSE getPathInfo()
        Web サービスパスに続くが、リクエスト URI のクエリ文字列の前にあり、"/" 文字で始まる追加のパス情報を返します。

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

        戻り値:
        Web サービスのデコードされた追加パス情報。これは、Web サービスパスの後、リクエスト URI null のクエリ文字列の前にあるパスです(リクエスト URI に追加のパスがない場合)。
      • getQueryString

        public abstract StringSE getQueryString()
        パスの後にリクエスト URI に含まれているクエリ文字列を返します。

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

        戻り値:
        リクエスト URI のデコードされていないクエリ文字列、またはリクエスト URI にない場合は null 
      • getAttribute

        public abstract ObjectSE getAttribute​(StringSE name)
        この HttpExchange に関連付けられている属性を返します。Jakarta XML Web Services ハンドラーとエンドポイントは、MessageContext を介して属性にアクセスできます。

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

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

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

        public abstract SetSE<StringSE> getAttributeNames()
        この HttpExchange に関連付けられているすべての属性名を指定します。
        戻り値:
        すべての属性名のセット
        関連事項:
        getAttribute(String)
      • getUserPrincipal

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

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