- java.lang.Object
-
- javax.xml.ws.spi.http.HttpExchange
-
public abstract class HttpExchange extends Object
このクラスは、一回の交換で、受信するHTTP要求と生成される応答をカプセル化します。 これは、クライアントからの要求の検査と、応答の作成と送信のための方法を提供します。ベースとなるリソースを解放または再利用するには、
HttpExchangeを閉じておく必要があります。 交換を閉じられなかった場合の影響は定義されていません。- 導入されたバージョン:
- 1.7, JAX-WS 2.2
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 static StringREQUEST_CIPHER_SUITE標準プロパティ: HTTPSでの要求の受信時の暗号化方式群値static StringREQUEST_KEY_SIZE標準プロパティ: HTTPSでの要求の受信時のアルゴリズムのビット・サイズstatic StringREQUEST_X509CERTIFICATE標準プロパティ: 要求に関連付けられているSSL証明書(存在する場合)
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 HttpExchange()
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 abstract voidaddResponseHeader(String name, String value)指定された名前と値を持つ応答ヘッダーを追加します。abstract voidclose()これは、交換を終了するために呼び出す必要があります。abstract ObjectgetAttribute(String name)このHttpExchangeに関連付けられた属性を返します。abstract Set<String>getAttributeNames()このHttpExchangeに関連付けられたすべての属性名を示します。abstract StringgetContextPath()アプリケーション内のすべての端点のコンテキスト・パスを返します。abstract HttpContextgetHttpContext()この交換のHttpContextを返します。abstract InetSocketAddressgetLocalAddress()要求を受信した未解決のローカル・アドレスを返します。abstract StringgetPathInfo()要求URI内でWebサービスのパスの後ろからクエリー文字列の前までの位置に書かれ、「/」で始まる追加のパス情報を返します。abstract StringgetProtocol()protocol/majorVersion.minorVersionの形式で要求からのプロトコル文字列を返します。abstract StringgetQueryString()要求URI内のパスの後ろに含まれているクエリー文字列を返します。abstract InetSocketAddressgetRemoteAddress()この要求を呼び出すリモート・エンティティの未解決のアドレスを返します。abstract InputStreamgetRequestBody()要求本体を読み込むことができるストリームを返します。abstract StringgetRequestHeader(String name)指定された要求ヘッダーの値を返します。abstract Map<String,List<String>>getRequestHeaders()この要求に組み込まれたHTTPヘッダーを含む不変のマップを返します。abstract StringgetRequestMethod()HTTP要求メソッドを取得しますabstract StringgetRequestURI()HTTP要求の最初の行にあるこの要求のURIの、プロトコル名からクエリー文字列までの部分を返します。abstract OutputStreamgetResponseBody()応答本体の書込み先となるストリームを返します。abstract Map<String,List<String>>getResponseHeaders()HTTP応答ヘッダーを格納でき、この応答の一部として送信される、変更可能なマップを返します。abstract StringgetScheme()たとえばhttpまたはhttpsのように、この要求に使用されるスキームの名前を返します。abstract PrincipalgetUserPrincipal()このHttpExchangeに対して認証されたユーザーを表すPrincipalを返します。abstract booleanisUserInRole(String role)認証されたユーザーが指定された論理的な「ロール」に含まれているかどうかを示します。abstract voidsetStatus(int status)この応答のHTTPステータス・コードを設定します。
-
-
-
メソッドの詳細
-
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_CONTEXT、MessageContext.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
-
-