WebSphere Application Server, Version 6.1   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows, Windows Vista

             目次と検索結果のパーソナライズ化

HTTP トランスポート・ヘッダー・プロパティーのベスト・プラクティス

Java API for XML-based RPC (JAX-RPC) クライアント・スタブで REQUEST_TRANSPORT_PROPERTIES プロパティーおよび RESPONSE_TRANSPORT_PROPERTIES プロパティーを設定すると、 Web サービス・クライアントが HTTP トランスポート・ヘッダーを送信または取得できるようになります。

ベスト・プラクティス: 以下のベスト・プラクティスは、Web サービス・クライアントが HTTP トランスポート・ヘッダーを送信または取得できるようにするために使用します。bprac

REQUEST_TRANSPORT_PROPERTIES のベスト・プラクティス

ヘッダー値のフォーマット

ヘッダー値のフォーマットは、以下の方法で書き込む必要があります。
  • 個々の名前と値のペアは、セミコロン (;) で区切ります。
  • 個々の名前 とその値は、等号 (=) で結びます。
ヘッダー値を書き込む方法の例を以下に示します。
name1=value1;name2=value2;name3=value3

HashMap 値

HashMap 値は、 発信要求にその HashMap のヘッダー ID と一致するヘッダー ID が既に含まれている場合は、 まず構文解析されてからその発信要求に追加されます。HashMap のヘッダー値は、 個々の name=value コンポーネントに解析されます。コンポーネントの区切りにはセミコロン (;) を使用して、 name1=value1;name2=value2 のようにします。name=value はそれぞれ発信ヘッダーに追加されますが、 以下の場合はその限りではありません。
  • 発信要求ヘッダーに名前 値が含まれている場合

    この場合には、 HashMap からの name=value は暗黙のうちに無視されるため、クライアントが、 サーバーまたは Web サービス・エンジンが既に発信要求ヘッダーで設定した名前 値の値を上書きしたり変更したりすることができなくなります。

  • HashMap ヘッダー値に複数の名前 値が含まれている場合

    HashMap ヘッダー値に複数の名前 値が含まれていると、最初に現れる名前 値が使用され、 それ以外のものは暗黙のうちに無視されます。例えば、HashMap ヘッダー値に name1=value1;name2=value2;name1=value3 が含まれている場合、 name1 が 2 回現れるので、最初の値 name1=value1 が使用されます。 もう 1 つの値 name1=value3 は暗黙のうちに無視されます。

RESPONSE_TRANSPORT_PROPERTIES のベスト・プラクティス

HashMap 値

HashMap キーのみが使用され、HashMap 値は無視されます。 値は、HTTP ヘッダーを取得することによってこの HashMap に取り込まれますが、 これは、着信する HTTP 応答からの HashMap キーに相当します。 HashMap が空の場合、 HTTP ヘッダーとそれに関連した値のすべてが着信 HTTP 応答から取得されます。

特別な考慮事項に基づいて処理される HTTP ヘッダー

以下の HTTP ヘッダーは、 HTTP の応答および要求を送信したり取得したりする際に、特別に考慮されるものです。

これらのヘッダーの値は、さまざまな方法で設定できます。 例えば、一部のヘッダー値はデプロイメント記述子やバインディング・ファイルの設定に基づいて送信されます。 このような場合、REQUEST_TRANSPORT_PROPERTIES によって設定された値が、 それ以外の方法で設定された値をオーバーライドします。

ヘッダー 要求の送信 応答の取得
Transfer-encoding
  • transfer-encoding ヘッダーは、HTTP 1.0 では無視されます。
  • HTTP 1.1 を使用している場合、transfer-encoding ヘッダーは、 値が chunked であれば chunked に設定されます。
特別な処理はありません。
Connection
  • connection ヘッダーは、HTTP 1.0 では無視されます。
  • HTTP 1.1 の場合は以下の値が設定されます。
    • 値が「close」に設定されていると、connection ヘッダーは「close」に設定されます。
    • 値が「keep-alive」に設定されていると、connection ヘッダーは「keep-alive」に設定されます。
    • それ以外の値設定はすべて無視されます。
特別な処理はありません。
Expect
  • expect ヘッダーは、HTTP 1.0 では無視されます。
  • HTTP 1.1 の場合は以下の値が設定されます。
    • 値が「100-continue」に設定されていると、connection ヘッダーは「100-continue」に設定されます。
    • それ以外の値設定はすべて無視されます。
特別な処理はありません。
ホスト 無視 特別な処理はありません。
Content-type 無視 特別な処理はありません。
SOAPAction 無視 特別な処理はありません。
Content-length 無視 特別な処理はありません。
Cookie

以下はストリング定数です。 com.ibm.websphere.webservices.Constants.HTTP_HEADER_COOKIE

この構造が正しい場合は、ヘッダー上で値が送信されます。 ヘッダー値フォーマットと HashMap 値については、この文書内の情報を参照してください。 特別な処理はありません。
Cookie2

以下はストリング定数です。 com.ibm.websphere.webservices.Constants.HTTP_HEADER_COOKIE2

「Cookie」項目の情報を参照してください。 特別な処理はありません。
Authorization 無視 特別な処理はありません。
Proxy-authorization 無視 特別な処理はありません。
Set-cookie

以下はストリング定数です。 com.ibm.websphere.webservices.Constants.HTTP_HEADER_SET_COOKIE

特別な処理はありません。 プロパティー MAINTAIN_SESSION を true に設定すると、 値全体は SessionContext.CONTEXT_PROPERTY に保管され、 Cookie ヘッダーのそれ以降の要求上で送信されます。詳しくは、 この表の Cookie 項目を参照してください。
Set-cookie2

以下はストリング定数です。 com.ibm.websphere.webservices.Constants.HTTP_HEADER_SET_COOKIE2

特別な処理はありません。 プロパティー MAINTAIN_SESSION を true に設定すると、 値全体は SessionContext.CONTEXT_PROPERTY に保管され、 Cookie ヘッダーのそれ以降の要求上で送信されます。詳しくは、 この表の Cookie 項目を参照してください。

クライアント・コードの例

以下の例は、 Web サービス・クライアントをコード化して HTTP トランスポート・ヘッダー値を送信および取得する方法を示したものです。
HashMap sendTransportHeaders=new HashMap();
sendTransportHeaders.put("Cookie","ClientAuthenticationToken=FFEEBCC");
sendTransportHeaders.put("MyRequestHeader","MyRequestHeaderValue");
((Stub) portType)._setProperty(Constants.REQUEST_TRANSPORT_PROPERTIES, sendTransportHeaders);

HashMap receiveTransportHeaders=new HashMap();
receiveTransportHeaders.put("Set-Cookie", null);
receiveTransportHeaders.put("MyResponseHeader", null);
((Stub) portType)._setProperty(Constants.RESPONSE_TRANSPORT_PROPERTIES, 
	receiveTransportHeaders);

resultString=portType.echoString("Foo");



関連タスク
HTTP トランスポート・ヘッダーの送信
HTTP トランスポート・ヘッダーの取得
JAX-RPC に対する拡張および J2EE クライアント・プログラミング・モデルの Web サービスのインプリメント
参照トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 5:05:53 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.doc/info/aes/ae/rwbs_transportheaderproperty.html