WSDL ファイルからの JAX-WS アプリケーション用 Java 成果物の生成

Web サービス記述言語 (WSDL) ファイルから開始する場合に JAX-WS Web サービスの開発に必要な Java™ 成果物を JAX-WS ツールを使用することによって生成します。

始める前に

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

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

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

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

このタスクについて

JAX-WS ツール wsimport を使用して WSDL ファイルを処理し、Web サービスの作成に使用される移植可能な Java 成果物を生成します。wsimport ツールを使用して作成される移植可能な Java 成果物は、以下のとおりです。
  • サービス・エンドポイント・インターフェース (SEI)
  • サービス・クラス
  • wsdl:fault クラスからマップされる例外クラス (存在する場合)
  • Java Architecture for XML Binding (JAXB) で生成されるタイプ値 (XML スキーマ・タイプからマップされる Java クラス)
サポートされる構成 サポートされる構成: wsimportwsgenschemagen、および xjc コマンド行ツールは、z/OS® プラットフォームではサポートされていません。この機能は、z/OS プラットフォームで稼働する WebSphere® Application Server で提供されるアセンブリー・ツールによって提供されます。 これらのツールについての詳細は、JAX-WS アプリケーションのこれらのコマンド行ツールに関する説明を参照してください。sptcfg
ベスト・プラクティス ベスト・プラクティス: WebSphere Application Server は、Java API for XML-Based Web Services (JAX-WS) および Java Architecture for XML Binding (JAXB) のツールを提供します。wsimportwsgenschemagen、および xjc コマンド行ツールは、WebSphere Application Server traditionalapp_server_root¥bin¥ ディレクトリーにあります。xjc コマンドおよび schemagen コマンド は、Liberty プロファイルの app_server_root¥jaxb¥bin¥ ディレクトリーにあります。 WebSphere Application Server および JDK が提供するツールによって生成される成果物は両方とも、同じレベルの仕様をサポートすることがあります。 一般的に、JDK ツールにより生成される成果物は、 その他の対応しているランタイム環境間で移植可能です。ただし、 WebSphere Application Server 環境内で シームレスな統合を実現して、WebSphere Application Server のみで サポートされる機能を利用するには、この製品で提供されるツールを使用するのがベスト・プラクティスです。JAX-WS および JAXB V2.2 ツールを 利用するには、アプリケーション・サーバーで提供され、 app_server_root¥bin¥ ディレクトリーにある ツールを使用します。bprac

これらの JAX-WS ツールは、コマンド行から使用するだけでなく、 Ant ビルド環境内で起動することができます。 wsimport ツールを起動するには、Ant ビルド環境内から com.sun.tools.ws.ant.WsImport Ant タスク を使用します。この Ant タスクが正しく機能するようにするには、 ws_ant スクリプトを使用して Ant を起動する必要があります。

手順

wsimport コマンドを実行して、移植可能なクライアント成果物を生成します。 wsimport ツールは、app_server_root¥bin¥ ディレクトリーにあります。
[Windows]
app_server_root¥bin¥wsimport.bat wsdl_URL 
[AIX][HP-UX][Linux][Solaris]
app_server_root/bin/wsimport.sh wsdl_URL
[IBM i]
app_server_root/bin/wsimport wsdl_URL
(オプション) wsimport コマンドでは、以下のオプションを使用します。
  • -verbose オプションを使用して、コマンドを実行するときに生成されたファイルのリストを確認します。
  • -keep オプションを使用して、生成された Java ファイルを保持します。
  • -wsdlLocation オプションを使用して、WSDL ファイルのロケーションを指定します。
    ベスト・プラクティス ベスト・プラクティス: 他のシステムに移植可能な JAX-WS Web サービス・クライアント・エンタープライズ・アーカイブ (EAR) ファイルが確実に生成されるようにするためのベスト・プラクティスは、Web サービス・クライアント Java アーカイブ (JAR) ファイルや Web アーカイブ (WAR) ファイルなどのアプリケーション・モジュール内に WSDL 文書をパッケージすることです。WSDL ファイルの ロケーションのための相対 URI は、-wsdllocation アノテーション属性を使用して指定することができます。例えば、MyService.wsdl ファイルが META-INF/wsdl/ ディレクトリーにある場合、wsimport ツールを実行し、-wsdllocation オプションを使用して、WSDL ファイルの場所として使用する値を指定します。これにより、生成される成果物に、 アプリケーションが管理コンソールにロードされる際に必要な正しい -wsdllocation 情報が 含まれるようになります。例えば、次のように指定します。
    wsimport -keep -wsdllocation=META-INF/wsdl/MyService.wsdl
    bprac
  • WSDL またはスキーマのカスタマイズを使用する場合、-b オプションを使用して、 カスタマイズを含む外部のバインディング・ファイルを指定します。

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

このコマンドおよび指定可能なその他のオプションの詳細については、wsimport コマンドの説明を参照してください。

タスクの結果

JAX-WS Web サービスの作成に必要な Java 成果物が得られました。wsimport コマンドの使用法、 構文規則、およびパラメーターについてさらに学習するには、JAX-WS アプリケーションの資料で wsimport コマンドの説明を参照してください。

以下の例は、移植可能な成果物を生成するために、wsimport コマンドを使用して サンプルの Ping WSDL ファイルを処理する方法を示しています。
  1. 以下の ping.wsdl WSDL ファイルを一時ディレクトリーにコピーします。
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
     * This program can 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.bat -keep -verbose ping.wsdl
    [Linux][AIX][HP-UX][Solaris]AIX® や Linux などのオペレーティング・システムでは、 スクリプトが親シェルに提供 され、次のコマンドを実行することで、 エクスポートされた変数が継承されます。
    . ./setupCmdLine.sh (ピリオド間のスペースに注意してください。)
    . /app_server_root>/bin ディレクトリーから、 wsimport コマンドを実行します。
    app_server_root/bin/wsimport.sh -keep -verbose ping.wsdl 
    [IBM i]
    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¥PingStringInput.javacom¥ibm¥was¥wssample¥sei¥ping¥PingService.java

ObjectFactory.java ファイルには、関連の ping パッケージに生成された Java コンテンツ・インターフェース、 および Java エレメント・インターフェース別に ファクトリー・メソッドが含まれています。 package-info.java ファイルは targetNamespace の値を使用し、ディレクトリー構造を作成します。 PingServicePortType.java ファイルは、生成されたサービス・エンドポイント・インターフェース (SEI) クラスであり、ping メソッド定義を含みます。 PinStringInput.java ファイルには、JAXB 生成のタイプ値が含まれています。 これらの値は XML スキーマ・タイプからマップされる Java クラスです。 PingService.java ファイルは、生成されたサービス・プロバイダーのクラス・ファイルであり、 JAX-WS クライアントによって使用されます。

次のタスク

JavaBeans またはエンタープライズ Bean 実装を完了することによって、Web サービスのアプリケーションの実装を完了します。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_jaxwsfromwsdl
ファイル名:twbs_jaxwsfromwsdl.html