ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server JAX-WS Webサービスの高度な機能のプログラミング
11g リリース1 (10.3.6)
B61633-05
  目次へ移動
目次

前
 
次
 

18 SOAPヘッダーの送受信

この章では、Java API for XML Web Services (JAX-WS)を使用したWebLogic Webサービスで、com.sun.xml.ws.developer.WSBindingProviderから利用可能なメソッドを使用して、アウトバウンドSOAPヘッダーの送信およびインバウンドSOAPヘッダーの受信を行う方法について説明します。

この章の内容は以下のとおりです。


注意:

com.sun.xml.ws.developer.WSBindingProvider APIおよびcom.sun.xml.ws.api.message.Headers APIは、JDK 6.0の拡張としてサポートされています。これらのAPIはJDK 6.0キットの一部としては提供されないため、変更される可能性があります。


SOAPヘッダーの送受信の概要

プロキシまたはディスパッチ・クライアントを作成すると、そのクライアントにより、javax.xml.ws.BindingProviderインタフェースが実装されます。SOAPヘッダーを送信または受信する必要がある場合には、Webサービス・プロキシ・クライアントまたはディスパッチ・クライアントをcom.sun.xml.ws.developer.WSBindingProviderにダウンキャストし、インタフェースのメソッドを使用することで、アウトバウンドSOAPヘッダーの送信やインバウンドSOAPヘッダーの受信を行うことができます。

WSBindingProviderを使用したSOAPヘッダーの送信

com.sun.xml.ws.developer.WSBindingProviderに対してsetOutboundHeadersメソッドを使用し、SOAPヘッダーを送信します。SOAPヘッダーの作成にはcom.sun.xml.ws.api.message.Headersメソッドを使用します。

たとえば、次のコードの抜粋は、簡単な文字列値をヘッダーとして渡す方法を示しています。

例18-1 WSBindingProviderを使用したSOAPヘッダーの送信

import com.sun.xml.ws.developer.WSBindingProvider;
import com.sun.xml.ws.api.message.Headers;
import javax.xml.namespace.QName;
...
HelloService helloService = new HelloService();
HelloPort port = helloService.getHelloPort();
WSBindingProvider bp = (WSBindingProvider)port;
 
bp.setOutboundHeaders(
  // Sets a simple string value as a header
  Headers.create(new QName("simpleHeader"),"stringValue")
);
...

WSBindingProviderを使用したSOAPヘッダーの受信

com.sun.xml.ws.developer.WSBindingProviderに対してgetInboundHeadersメソッドを使用し、SOAPヘッダーを受信します。

たとえば、次のコードの抜粋は、インバウンド・ヘッダーを取得する方法を示しています。

例18-2 WSBindingProviderを使用したSOAPヘッダーの受信

import com.sun.xml.ws.developer.WSBindingProvider;
import com.sun.xml.ws.api.message.Headers;
import javax.xml.namespace.QName;
import java.util.List;
...
HelloService helloService = new HelloService();
HelloPort port = helloService.getHelloPort();
WSBindingProvider bp = (WSBindingProvider)port;
 
List inboundHeaders = bp.getInboundHeaders();
...