WebSphere Application Server Version 6.1 Feature Pack for Web Services   
             オペレーティング・システム: AIX , HP-UX, i5/OS, Linux, Solaris, Windows, Windows Vista, z/OS

             目次と検索結果のパーソナライズ化
             New or updated topic for this feature pack

WSDL ファイルからの JAX-WS クライアントの開発

Java API for XML-Based Web Services (JAX-WS) ツールは、 Web サービス記述言語 (WSDL) ファイルから開始して開発する場合、 静的 JAX-WS Web サービス・クライアントの開発に必要な Java 成果物の生成をサポートします。

始める前に

WSDL ファイルから開始する JAX-WS Web サービスの開発にトップダウン開発アプローチを使用する場合、 WSDL ファイルの Uniform Resource Locator (URL) を取得する必要があります。

[Windows] [z/OS] WSDL ファイルがローカル・ファイルである場合、URL は file:drive:¥path¥file_name.wsdl のようになります。

[Linux] [AIX] [HP-UX] [Solaris] [i5/OS] WSDL ファイルがローカル・ファイルである場合、URL は file:/path/file_name.wsdl のようになります。

また、絶対または相対ファイル・システム・パスを使用してローカル・ファイルを指定することもできます。

このタスクについて

JAX-WS の静的クライアント・プログラミング・モデルは、 呼び出された動的プロキシー・クライアントです。 動的プロキシー・クライアントは、提供されるサービス・エンドポイント・インターフェースに基づく Web サービスを呼び出します。 プロキシーを作成した後、 クライアント・アプリケーションはこれらのインターフェースの標準実装のように、プロキシーにあるメソッドを呼び出すことができます。 動的プロキシー・プログラミング・モデルを使用する JAX-WS Web サービス・クライアントの場合、 JAX-WS ツールの wsimport を使用して WSDL ファイルを処理し、 Web サービス・クライアントの作成に使用される移植可能な Java 成果物を生成します。 wsimport ツールを使用して以下の移植可能な Java 成果物を作成します。
  • サービス・エンドポイント・インターフェース (SEI)
  • サービス・クラス
  • wsdl:fault クラスからマップされる例外クラス (存在する場合)
  • Java Architecture for XML Binding (JAXB) で生成されるタイプ値。XML スキーマ・タイプからマップされる Java クラスです。

プロシージャー

  1. (オプション) WSDL またはスキーマのカスタマイズを使用する場合、 wsimport コマンドに -b オプションを使用して、ユーザーのカスタマイズを含む外部のバインディング・ファイルを指定します。

    例: wsimport -b binding.xml wsdlfile.wsdl

    WSDL ファイルのバインディングをカスタマイズして、非同期マッピングまたは添付を使用可能にすることができます。 非同期インターフェースを生成するには、 クライアント・サイド専用のカスタマイズ enableAsyncMapping バインディング宣言を、 wsdl:definitions エレメントに、または WSDL ファイルに定義されている外部のバインディング・ファイルに追加します。 カスタム・クライアントまたはサーバーのバインディング・ファイルにある enableMIMEContent バインディング宣言を使用して、デフォルトの mime:content マッピング・ルールを使用可能または使用不可にします。カスタム・バインディング宣言の追加情報については、 JAX-WS 仕様の第 8 章を参照してください。

  2. wsimport -keep wsdl_URL コマンドを実行して、 移植可能なクライアント成果物を生成します。 wsimport ツールは、 app_server_root¥bin¥ ディレクトリーにあります。-verbose オプションを使用して、コマンドを実行するときに生成されたファイルのリストを確認します。

結果

JAX-WS Web サービスを呼び出すことのできる JAX-WS クライアントを作成するための、生成済み Java 成果物が得られます。

以下の例は、移植可能な成果物を生成するために、wsimport コマンドを使用して サンプルの ping.wsdl ファイルを処理する方法を示しています。
  1. 以下の ping.wsdl ファイルを app_server_root¥bin¥ ディレクトリーにコピーします。
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
     * This program may be used, run, copied, modified and distributed
     * without royalty for the purpose of developing, using, marketing, or distributing.
     -->
    <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    	xmlns:tns="http://com/ibm/was/wssample/sei/ping/"
    	xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="PingService"
    	targetNamespace="http://com/ibm/was/wssample/sei/ping/">
    <wsdl:types>
    <xsd:schema
    			targetNamespace="http://com/ibm/was/wssample/sei/ping/"
    		xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    
    
    			<xsd:element name="pingStringInput">
    <xsd:complexType>
    <xsd:sequence>
    						<xsd:element name="pingInput" type="xsd:string" />
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:schema>
    </wsdl:types>
    	<wsdl:message name="pingOperationRequest">
    		<wsdl:part element="tns:pingStringInput" name="parameter" />
    </wsdl:message>
    	<wsdl:portType name="PingServicePortType">
    		<wsdl:operation name="pingOperation">
    			<wsdl:input message="tns:pingOperationRequest" />
    
    </wsdl:operation>
    </wsdl:portType>
    	<wsdl:binding name="PingSOAP" type="tns:PingServicePortType">
    		<soap:binding style="document"
    			transport="http://schemas.xmlsoap.org/soap/http" />
    		<wsdl:operation name="pingOperation">
    			<soap:operation soapAction="pingOperation" style="document" />
    <wsdl:input>
    				<soap:body use="literal" />
    </wsdl:input>
    </wsdl:operation>
    </wsdl:binding>
    	<wsdl:service name="PingService">
    		<wsdl:port binding="tns:PingSOAP" name="PingServicePort">
    <soap:address
    				location="http://localhost:9080/WSSampleSei/PingService" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>
    
  2. app_server_root¥bin¥ ディレクトリーから wsimport コマンドを実行します。 [Windows]
    app_server_root¥bin¥wsimport -keep -verbose ping.wsdl
    [Linux] [AIX] [HP-UX] [Solaris] Linux および UNIX ベースのプラットフォームでは、スクリプトを親シェルに source し、次のコマンドを実行することで エクスポートされた変数を継承できます。
    . ./setupCmdLine.sh (ピリオド間のスペースに注意してください。)
    . /app_server_root>/bin ディレクトリーから、 次の wsimport コマンドを実行します。
    app_server_root/bin/wsimport -keep -verbose ping.wsdl 
wsimport コマンドによりテンプレート・ファイルを生成すると、 以下のファイルが生成されます。
com¥ibm¥was¥wssample¥sei¥ping¥ObjectFactory.java
com¥ibm¥was¥wssample¥sei¥ping¥package-info.java
com¥ibm¥was¥wssample¥sei¥ping¥PingServicePortType.java
com¥ibm¥was¥wssample¥sei¥ping¥PingService.java
com¥ibm¥was¥wssample¥sei¥ping¥PingStringInput.java

ObjectFactory.java ファイル、 PingService.java ファイル、および PingServicePortType.java ファイルは、生成済み Java クラス・ファイルです。 これらは、Java アーカイブ (JAR) または Web アーカイブ (WAR) ファイル内にあるクライアント・インプリメンテーションを使用して Java 成果物をパッケージにする際に使用されます。

次の作業

クライアント・インプリメンテーションを完了します。



関連概念
JAX-WS
JAX-WS クライアント・プログラミング・モデル
関連タスク
Web サービス・クライアントの開発とデプロイ
JAX-WS Web サービスの非同期呼び出し
JAX-WS API を使用した動的クライアントの開発
WSDL ファイルからの JAX-WS アプリケーション用 Java 成果物の作成
関連資料
JAX-WS アプリケーション用の wsimport コマンド
関連情報
Java API for XML Web Services (JAX-WS) API documentation
Java API for XML Web Services (JAX-WS) API User's Guide documentation
タスク・トピック    

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

最終更新: Jan 21, 2008 4:10:06 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.wsfep.multiplatform.doc/info/ae/ae/twbs_jaxwsclientfromwsdl.html