WebLogic Web サービス プログラマーズ ガイド
![]() |
![]() |
![]() |
![]() |
この章では、メッセージ フォーマットとしての SOAP 1.2 の使い方に関する情報を提供します。
WebLogic Web サービスでは、クライアント アプリケーションが Web サービス オペレーションを呼び出すときに SOAP 1.1 がメッセージ フォーマットとしてデフォルトで使用されます。ただし、web-services.xml
ファイルを更新し、クライアント スタブの生成時に clientgen
で特定の属性を指定すれば、SOAP 1.2 をメッセージ フォーマットとして使用できます。
警告 :BEA の SOAP 1.2 は、W3C の草案仕様 (2002 年 6 月 26 日) に基づいて実装されています。この仕様はまだ W3C 勧告ではないため、BEA の現在の実装は変更される可能性があります。WebLogic Server のこのバージョンに組み込まれている SOAP 1.2 の機能は、開発環境でのみ使用することをお勧めします。
WebLogic Web サービスをコンフィグレーションし、メッセージ フォーマットとして SOAP 1.2 も使用する場合は以下のようになります。
clientgen
Ant タスクでは、Web サービス固有のクライアント JAR ファイルを Web サービス用に生成するときに、SOAP 1.1 用と SOAP 1.2 用の 2 つの getPort()
メソッドを持つサービス
実装が生成される。
次の手順では、ユーザが servicegen
Ant タスクに精通し、Web サービスを更新して SOAP 1.2 をメッセージ フォーマットとして使用することを前提としています。servicegen
の使い方の例については、「WebLogic Web サービスの作成 : 単純な例」を参照してください。
<servicegen
destEar="ears/myWebService.ear"
warName="myWAR.war"
contextURI="web_services" >
<service
ejbJar="jars/myEJB.jar"
targetNamespace="http://www.bea.com/examples/Trader"
serviceName="TraderService"
serviceURI="/TraderService"
generateTypes="True"
expandMethods="True"
useSOAP12="True" >
</service>
</servicegen>
注意 :servicegen
を使用しない場合は、WebLogic Web サービスの web-services.xml
ファイルを手動で更新できます。詳細については、「web-services.xml ファイルを手動で更新する」を参照してください。
servicegen
Ant タスクの詳細については、「servicegen Ant タスクを指定するビルド ファイルの作成」を参照してください。
Web サービスの WSDL が更新され、SOAP 1.2 バインディングを使用するポートが追加されたので、clientgen
Ant タスクによって、これらの SOAP 1.2 固有の getPortXXX()
メソッドを含む新しいスタブが自動的に作成されます。
詳細については「clientgen Ant タスクを実行してクライアント JAR ファイルを生成する」を参照してください。
Web サービスを呼び出す Java クライアント アプリケーションの記述の詳細については、「SOAP 1.2 を使用した Web サービスの呼び出し」を参照してください。
web-services.xml
ファイルは、Web サービス EAR ファイルにある Web アプリケーションの WEB-INF
ディレクトリにあります。ファイルの場所の詳細については、「Web サービス EAR ファイル パッケージ」を参照してください。
web-services.xml
ファイルを更新して SOAP 1.2 を指定するには、次の手順に従います。
クライアント アプリケーションを作成して SOAP 1.2 対応の WebLogic Web サービスを呼び出すには、最初に clientgen
Ant タスクを使用し、通常どおり、生成されたスタブが組み込まれている Web サービス固有のクライアント JAR ファイルを生成します。この場合 clientgen
Ant タスクでは、2 つの getPort()
メソッドが格納されている JAX-RPC Service
実装が生成されます。1 つは SOAP 1.1 用の標準メソッド get
ServiceName
Port()
、もう 1 つは SOAP 1.2 用のメソッド get
ServiceName
PortSoap12()
です。ServiceName
は Web サービスの名前です。これら 2 つの getPort()
メソッドは、Web サービス用に生成された WSDL の 2 つのポート定義に対応します。「SOAP 1.2 の使い方の概要」を参照してください。
次の簡単なクライアント アプリケーションの例では、SOAP 1.1 (getMyservicePort()
メソッド経由) と SOAP 1.2 (getMyServicePortSoap12()
メソッド経由) の両方を使用して、MyService
Web サービスの helloWorld
オペレーションを呼び出す方法を説明します。
import java.io.IOException;
public class Main{
public static void main( String[] args ) throws Exception{
MyService service = new MyService_Impl();
MyServicePort port = service.getMyServicePort();
System.out.println( port.helloWorld() );
port = service.getMyServicePortSoap12();
System.out.println( port.helloWorld() );
}
}
![]() ![]() |
![]() |
![]() |