第10章

Webサービスウィザード

この章では、Novell exteNd Director 開発環境のWebサービスウィザードについて説明します。このウィザードを使用すると、Webサービスを実装したり、呼び出したりするためのファイルを生成できます。トピックは次のとおりです。

For more information    Webサービスの概念、標準、および技術の紹介については、を参照してください。

 
Top of page

ウィザードについて

Webサービスウィザードでは、次のタスクのいずれかを実行できます。

いずれの場合も、ウィザードでは、JAX-RPC (Java API for XML-based RPC)およびNovell exteNd Web Services SDK (Novell exteNdに含まれているJAX-RPX実装)に基づいて、Javaソースファイルを生成します。JAX-RPCは、Webサービスサポートを提供するJ2EE仕様です。

生成されたファイルは、そのまま使用したり、必要に応じて変更したりできます。このJava指向の方法には、低レベルのSOAP APIをコード化する代わりに、熟知しているRMIおよびJ2EEの技術を使用してWebサービスを処理できるという利点があります。

動作   背後でWebサービスウィザードは複数の異なるコンパイラを使用して、要求された出力を生成します。

ウィザードで使用されるコンパイラ

生成される出力

リモートインタフェースジェネレータ

JavaBean、Javaクラス、またはEJBセッションBeanからのJavaリモートインタフェース

wsdl2java (WebサービスSDKから)

WSDLファイルからのJavaリモートインタフェース

xsd2java (WebサービスSDKから)

WSDLファイルのXMLスキーマで定義された複雑なタイプからのタイプクラス(JavaBeans、マーシャラー)およびマッピングファイル

rmi2soap (WebサービスSDKから)

Javaリモートインタフェースからのスケルトンおよび結合クラス、スタブおよびサービスクラス、そしてマーシャラー(複雑なタイプの場合)

rmi2soap (WebサービスSDKから)

JavaリモートインタフェースからのWSDLファイル

実行するコンパイラおよびその順序は、ウィザードのパネルへの入力時に設定したタイプおよび選択したオプションに応じて決定されます。

ウィザード以外の方法   コマンドラインから手動で個別のwsdl2java、xsd2java、rmi2soap、およびrmi2wsdlコンパイラを実行できます。詳細については、Web Services SDKヘルプを参照してください。

 
Top of page

ウィザードの使用

この節では、Webサービスウィザードを使用するための準備、実行、および出力の処理について説明します。

操作

参照

ウィザードを使用して、次のいずれかに基づき「新しいWebサービス」を作成する

  • JavaBeanまたはその他のJavaクラス

  • EJBセッションBean

  • Javaリモートインタフェース

  • WSDLファイル

ウィザードを使用して、WSDLファイルに基づき「既存のWebサービス」にアクセスするためのコードを作成する

 
Top of page

パネルの順序

この節では、Webサービスウィザードで入力が必要なパネルについて、シナリオごとに説明します。

開始条件

使用するパネル

JavaBeanまたはその他のJavaクラス

  1. プロジェクトの場所(およびWARプロジェクトの選択の場合もあり)

  2. クラスの選択

  3. メソッドの選択

  4. バインドスタイル(およびスキーマ情報の場合もあり)

  5. クラス生成およびSOAPオプション

EJBセッションBeanのホームインタフェース

  1. プロジェクトの場所(およびWARプロジェクトの選択の場合もあり)

  2. クラスの選択

  3. EJBの検索情報

  4. バインドスタイル(およびスキーマ情報の場合もあり)

  5. クラス生成およびSOAPオプション

EJBセッションBeanのリモートインタフェースまたはSessionBeanクラス自体

  1. プロジェクトの場所(およびWARプロジェクトの選択の場合もあり)

  2. クラスの選択

  3. EJBホームインタフェースの選択

  4. EJBの検索情報

  5. バインドスタイル(およびスキーマ情報の場合もあり)

  6. クラス生成およびSOAPオプション

Javaリモートインタフェース

  1. プロジェクトの場所(およびWARプロジェクトの選択の場合もあり)

  2. クラスの選択

  3. バインドスタイル(およびスキーマ情報の場合もあり)

  4. クラス生成およびSOAPオプション

WSDLファイル

  1. プロジェクトの場所

  2. WSDLファイルの選択(および複数のネームスペースのマッピングの場合もあり)

  3. クラス生成およびSOAPオプション

 
Top of page

パネルの詳細

この節では、Webサービスウィザードの各パネルのオプションについて説明します。パネルは、次のとおりです。

 
Top of section

プロジェクトの場所

このパネルでは、ウィザードで生成されたWebサービスファイルを保存するプロジェクトの場所(プロジェクト、ディレクトリ、パッケージ)に関する詳細を指定します。このパネルには2種類あります。

Procedure このパネルを完成させる

  1. 「プロジェクト」を指定します。

    オプション

    操作内容

    開いているオプションに追加

    生成されたファイルをウィザードで保存するプロジェクトを選択します。このオプションを使用すると、現在開いているプロジェクトのリストから選択できます。

    Webサービスを生成する場合、通常WARプロジェクトを選択します。

    必要に応じて代わりにJARファイルを選択できますが、その場合WebサービスのサーブレットをマップするWARプロジェクトを指定するよう求められます。WARプロジェクトの選択を参照してください。

    WSDLファイルからWebサービスを生成する場合、ウィザードでは現在のところJARプロジェクトを選択できません。WARプロジェクトを選択する必要があります。

    Webサービスコンシューマを生成する場合、任意のタイプのプロジェクトを選択できます。

    プロジェクトの作成

    使用する新しいプロジェクトを作成する場合、このボタンをクリックします。[新規プロジェクト]ダイアログボックスが表示されます。

    For more information    プロジェクトおよびサブプロジェクトの作成を参照してください。

    プロジェクトがありません - ディスクにファイルを書き込んでください

    このオプションは無効になっています。Webサービスウィザードでは、生成されたファイルは開いているプロジェクトに追加する必要があります。

  2. ディレクトリ、およびパッケージを指定します。

    オプション

    操作内容

    基本ディレクトリ

    デフォルトのベースディレクトリは、ファイルシステムでプロジェクトディレクトリの直下にあるsrcサブディレクトリです。別のファイルシステムの場所を選択する場合は、[参照]をクリックします。

    パッケージ

    (オンの場合)生成されるクラスに使用する完全修飾されたJavaパッケージ名を指定します(たとえばcom.myco.mypkg)。

    ファイルディレクトリ

    このフィールドは情報提供のみで、生成されたファイルが保存されるファイルシステムの場所が表示されます。「ベースディレクトリ」と「パッケージ」を組み合わせたものになります。

    アーカイブのルートにファイルを追加する

    (オンの場合)生成されたファイル(および存在する場合はそのパッケージパス)をプロジェクトアーカイブのルートに配置する場合、このオプションを選択します。

    次のプレフィックスを使用してアーカイブにファイルを追加する

    生成されたファイル(および存在する場合はそのパッケージパス)をプロジェクトアーカイブの指定したディレクトリ構造(プレフィックス)に配置する場合、このオプションを選択します。

    WARプロジェクトの場合、プレフィックスはWEB-INF/classesに自動的に設定されます。

    ファイルはアーカイブの次の場所に追加されます:

    (表示されている場合)このフィールドは情報提供のみで、生成されたファイルが保存されるプロジェクトアーカイブの場所が表示されます。「プレフィックス」と「パッケージ」を組み合わせたものになります。

  3. [次へ]をクリックします。

 
Top of section

WARプロジェクトの選択

このパネルは、JARプロジェクトでWebサービスを保存する場合に必要なWARプロジェクトを指定する際に使用します。ウィザードにより、Webサービスの「サーブレットマッピング」に伴いWARの展開記述子(web.xml)が更新されます。

WSWpanelWARProjSel

Procedure このパネルを完成させる

  1. 次のように指定します。

    オプション

    操作内容

    WARプロジェクト

    WebサービスのサーブレットをマップするWARプロジェクトを選択します。このオプションを使用すると、現在開いているWARプロジェクトを選択できます。

    プロジェクトの作成

    使用する新しいWARプロジェクトを作成する場合、このボタンをクリックします。[新規プロジェクト]ダイアログボックスが表示されます。

    For more information    プロジェクトおよびサブプロジェクトの作成を参照してください。

  2. [次へ]をクリックします。

 
Top of section

クラスの選択

このパネルは、ウィザードがWebサービスファイルを生成するコンパイル済みのクラスを選択する場合に使用します。サポートされている選択肢は次のとおりです。

注記:   このパネルでは、オーバーロードされたメソッド名を定義するEJBやリモートインタフェースを選択することはできません。Webサービスインタフェース(WSDL 1.2以降)では、メソッド名のオーバーロードはできません。ウィザードを起動する前に、クラスから削除しておく必要があります。

WSWpanelClassSel

デフォルトでは、選択されたプロジェクトのビルドディレクトリでコンパイル済みのクラスが検索され、[使用できるクラス]ボックスに表示されます。WARプロジェクトの場合、このリストはビルドディレクトリのWEB-INF/classesから特に生成されます。

Procedure 現在のリストから選択する

  1. [使用できるクラス]リストにある項目をクリックします。

  2. [次へ]をクリックします。

Procedure 現在のリストを絞り込む

Procedure 別の場所からクラスを表示する

 
Top of section

WSDLファイルの選択

このパネルは、ウィザードがWebサービスファイルを生成するWSDLクラスを選択する場合に使用します。プロジェクト、ファイルシステム、または(URLを指定することにより)Webから選択できます。

注記:   WSDLファイルから新しいWebサービスの生成を計画している場合、そのWSDLファイルを事前に編集し、サービス定義のSOAPアドレスで正しいバインドURLが指定されていることを確認する必要があります。Webサービスウィザードでは、Webサービスに対して生成するファイルでこのURLを使用します。

注記:   このパネルでは、オーバーロードされたメソッド名を定義するWSDLファイルを選択することはできません。Webサービスインタフェース(WSDL 1.2以降)では、メソッド名のオーバーロードはできません。ウィザードを起動する前に、WSDLファイルから削除しておく必要があります。

WSWpanelWSDLSel

デフォルトでは、選択されたプロジェクトのパネルで.wsdlファイルが検索され、[プロジェクトのWSDLファイル]ボックスに表示されます。

Procedure 現在のリストから選択する

  1. [プロジェクトのWSDLファイル]リストのアイテムをクリックして、使用するWSDLファイルを指定します。

  2. [次へ]をクリックします。

Procedure ファイルシステムから選択する

  1. [使用するWSDLファイルまたはURL]の参照ボタン(・をクリックして、ファイルシステムからWSDLファイルを選択します。

  2. [次へ]をクリックします。

Procedure URLによりファイルを指定する

  1. ターゲットのWSDLファイルのURLを[使用するWSDLファイルまたはURL]に入力します。たとえば次のように使います。

      http://upload.eraserver.net/circle24/autoloan.asmx?wsdl
    
  2. [次へ]をクリックします。

 
Top of section

複数のネームスペースのマッピング

このパネルは、XMLスキーマの複雑なタイプに対して複数のネームスペースが使用されているWSDLファイルから生成する場合に使用します。各ネームスペースを個別のJavaパッケージにマップできます。

注記:   このパネルのマッピングは、クラス生成およびSOAPオプションパネルで[完全なXMLタイプをJavaタイプにマップする]オプションがオンの場合にのみ使用されます。

WSWpanelMultiNsMap

このパネルには該当するネームスペースが表示され、それぞれに対してデフォルトのパッケージ名が入力されます。任意のパッケージ名は編集することができます。各ネームスペースに対して固有なパッケージ名が指定されていることを確認してください。

Procedure ネームスペースとパッケージのマッピングを編集する

  1. [パッケージ]カラムから編集する名前をダブルクリックして、任意のテキストを入力します。

    ([ネームスペース]カラムの名前は編集できません)。

  2. パッケージ名の編集後、[次へ]をクリックします。

 
Top of section

EJBホームインタフェースの選択

このパネルは、クラス選択パネルで指定したEJBセッションBeanクラスまたはリモートインタフェースに対応するホームインタフェースの選択に使用します。

WSWpanelEJBHome

デフォルトでは、このパネルはEJBセッションBeanクラスまたはリモートインタフェースが存在する場所を対象として、ホームインタフェース(javax.ejb.EJBHomeを拡張するコンパイル済みのクラス)を検索します。見つかった場合は、[使用できるクラス]ボックスのリストに表示されます。

Procedure 現在のリストから選択する

  1. [使用できるクラス]リストにある項目をクリックします。

  2. [次へ]をクリックします。

Procedure 別の場所からクラスを表示する

 
Top of section

EJBの検索情報

このパネルでは、選択されたEJBセッションBeanを、WebサービスがJNDI検索する際に必要となる情報を指定します(JNDIとは、Java Naming and Directory Interfaceの略です)。

WSWpanelEJBLookup

このパネルには、Novell exteNd Application Serverに表示されているセッションBeanの検索に対応したデフォルトの初期コンテキスト値が表示されます。その他のJ2EEサーバの要件に関する情報については、該当するドキュメントを参照してください。

Procedure このパネルを完成させる

  1. [展開されたJNDI名]を指定します。

    オプション

    操作内容

    文字列のルックアップ

    ターゲットのJ2EEサーバでセッションBeanが登録されているサブコンテキストおよびJNDI名を指定します。たとえば、ejbサブコンテキストでJNDI名が「SBMyEJB」のセッションBeanを検索するには、次のように入力します。

      ejb/SBMyEJB
    

    ウィザードでは、web.xml展開記述子で生成されるejb-ref宣言にこの情報が含まれます。JNDI検索を実行する場合この情報がランタイム時にどのように使用されるか学習するには、xxxDelegate.java (結合サーブレットに対して生成される委任クラス)のgetSessionBean()メソッドを参照してください。

  2. [初期コンテキスト情報]を指定します。

    オプション

    操作内容

    ファクトリクラス

    ターゲットのJ2EEサーバに対応するパッケージのプレフィックスおよびInitialContextファクトリクラス名を指定します。

    プロバイダURL

    ターゲットのJ2EEサーバのJNDIネームスペースに対するURLを指定します。

    ユーザID

    ターゲットのJ2EEサーバにログオンし、セッションBeanにアクセスする権限を持つ有効なユーザ名を指定します。

    パスワード

    ユーザIDのパスワードを指定します。

    ウィザードでは、web.xml展開記述子で生成されるservlet宣言にこの情報が含まれます。ランタイム時にこの値がどのように使用されるか学習するには、xxxDelegate.javaのgetInitialContext()メソッドを参照してください。

  3. [次へ]をクリックします。

 
Top of section

メソッドの選択

このパネルは、JavaBeanまたはその他のJavaクラスからWebサービスファイルを生成する際に表示されるメソッドを選択する場合に使用します。

注記:   Webサービスインタフェース(WSDL 1.2以降)では、メソッド名のオーバーロードはできません。そのためこのパネルでは、同じ名前のメソッドを複数選択することはできません。WSWpanelMethSel

このパネルでは、選択したクラスが確認され、その有効なメソッドが[使用できるメソッド]ボックスに表示されます。

Procedure 表示するメソッドを選択する

  1. [追加]および[すべて追加]ボタンを使用して、[使用できるクラス]から任意の数の項目を[選択されたクラス]に移動します。

    必要な場合は、[削除]および[すべて削除]を使用すると、任意の数の項目を戻すことができます。

  2. [次へ]をクリックします。

 
Top of section

バインドスタイル

このパネルは、JavaBean、Javaクラス、EJBセッションBean、またはJavaリモートインタフェースからWebサービスを生成する際、バインドスタイルを指定するために使います。

WSWpanelBindStyle

Procedure バインドスタイルを指定する

  1. 次のうちのいずれかを選択します。

    このオプションを選択する場合、使用するWebサービスに影響するあらゆるWebサービス環境の要件を考慮する必要があります。ほとんどの場合いずれのスタイルでも動作しますが、環境によっては特定のスタイルが必要です。

  2. [次へ]をクリックします。

 
Top of section

スキーマ情報

このパネルは、Webサービス用に生成するWSDLファイルに記述する、XMLスキーマ情報を指定するために使います。次のような場合に、Webサービスウィザードから、この情報の入力を求められます。

関連する2つのスキーマ情報パネルがあります。

注記:   このパネルで指定した情報は、クラス生成およびSOAPオプション[WSDLファイルの生成]チェックボックスがオンになっている場合に限って使われます。

Procedure スキーマを指定する

  1. [追加]ボタンを押して、リストに加える各スキーマ(XSD)ファイルのパスまたはURLを指定します。

    リストからファイルを削除したい場合は、[削除]ボタンを使います。

  2. [次へ]をクリックします。

Procedure メソッドタイプマッピングを指定する

  1. パネルに列挙されている各メソッドパラメータについて、次のように操作します。

    作業内容

    操作手順

    メソッドパラメータを、列挙されているスキーマの修飾名にマップします。

    そのパラメータの情報行で次のように操作します。

    1. 3番目のカラムをクリックし、[スキーマ]を選択します。

    2. 4番目のカラムをクリックし、スキーマのリストから修飾名を選択します。

    メソッドパラメータからインスタンスデータファイルにマップします。

    そのパラメータの情報行で次のように操作します。

    1. 3番目のカラムをクリックし、[インスタンスデータ]を選択します。

    2. 4番目のカラムをクリックし、[参照](...)ボタンを使って、該当するインスタンスデータを含むXMLファイルを選択します。

  2. [次へ]をクリックします。

 
Top of section

クラス生成およびSOAPオプション

このパネルは、(スケルトン、結合、およびスタブクラスを含め)生成するWebサービスファイルを選択して、ファイルでエンコードするSOAP実装の詳細を指定する場合に使用します。このパネルには2種類あります。

Procedure このパネルを完成させる

  1. [生成オプション]を指定します。

    オプション

    操作内容

    スタブを生成する

    このオプションをオンにすると、Webサービスを使用するためのサービスクラス、スタブクラスなどのクラスおよび簡単なクライアントアプリケーションが生成されます。次のソースファイルが取得されます。

    • xxxService.java

    • xxxServiceImpl.java

    • xxx_Stub.java

    • xxxClient.java

    スケルトンを生成する

    このオプションをオンにすると、Webサービスを実装するためのクラスが生成されます。次の実装モデルから1つ選択します。

    • 結合ベース    Webサービスの要求および個別の実装クラスに対する委任メソッド呼び出しを処理するために使用されるスケルトンおよび結合サーブレットクラスを生成します。次のソースファイルが取得されます。

      • xxx_ServiceSkeleton.java

      • xxx_ServiceTieSkeleton.java

      • xxxTie.java

      JavaBean、Javaクラス、またはEJBセッションBeanで開始する場合、次のソースファイルも取得されます(クラスの委譲に使用されます)。

      • xxxDelegate.java

    • 結合ベースでない    Webサービスの要求の処理に使用されるスケルトンサーブレットクラスのみを生成します。次のソースファイルが取得されます。

      • xxx_ServiceSkeleton.java

    WSDLファイルの生成

    (表示されている場合)このオプションをオンにすると、次のファイルが生成されます。

    • xxx.wsdl

    レジストリに公表する場合に便利な標準のWSDL形式でWebサービスを記述します。ウィザードにより、このファイルはソースツリー(一般名はsrc)のベースディレクトリに保存されます。

    jBroker Web 1.x対応クラスを生成する

    このオプションをオンにすると、次の情報に対する従来のjBroker Web(バージョン1.x)の表記規則に対応する特定のファイルが生成されます。

    • ファイル名

    • クライアントコードのスタブアクセス

    これらの表記規則を除き、生成されたファイルはWebサービスSDKの最新バージョンに従います。

    このオプションは、jBroker Web 1.xで作成されたアプリケーションを維持し、現在の規則(JAX-RPCが基礎になっており、既存のコードを一部変更する必要があります)に切り替える準備がまだできていない場合にのみ使用します。

    For more information    このオプションによる生成物について詳しくは、jBroker Web 1.xとの互換性を選択した場合を参照してください。

    ローカルXSDファイルが存在するディレクトリ

    (表示されている場合)選択したWSDLファイルのタイプ定義が、インポートされるXSDファイルに従属している場合、オプションでそのコピーを含むローカルディレクトリを指定できます。WSDLファイルで指定された場所に基づきウィザードが特定のXSDファイルにアクセスできない場合、ローカルディレクトリでそのXSDファイルが検索されます。

    For more information    XSDファイルの詳細については、WSDLの仕様を参照してください。

    完全なXMLタイプをJavaタイプにマップする

    (表示され、有効になっている場合)このオプションをオンにすると、選択されたWSDLファイルで(XMLスキーマにより)定義されている複雑なタイプを特定のJavaタイプにマップすることができます。ウィザードによりすべての複雑なXMLタイプをorg.w3c.dom.Element Javaタイプにマップする場合、このオプションをオフにします。

    WSDLファイルでバインドスタイルがRPCと指定されていれば、このオプションは自動的にオンになります。オフにすることはできません。

  2. (表示されている場合)[SOAPオプション]を指定します。

    オプション

    操作内容

    ターゲットネームスペース

    生成されたスタブクラスおよびスケルトンクラスにより生成されるSOAPメッセージのターゲットネームスペースを指定します。SOAPメッセージの送信時、メソッドおよびパラメータ名はこのネームスペースに指定されます。

    デフォルト値を受け入れるか、ネームスペースに対して任意の文字列を指定できます。この機能には、SOAPメッセージの対象を指定する以外特別な意味はありません。

    WSDLファイルの生成時、ウィザードによりターゲットネームスペース定義に対しこの値が使用されます。

    サービスアドレス

    Webサービスにアクセスするためのバインドとして使用されるURLを指定します。ウィザードにより、生成される次のファイルにこのバインド情報が含まれます。

    • スタブクラス(xxx_Stub.java)およびサービス実装クラス(xxxServiceImpl.java)では、WebサービスにバインドするデフォルトのURLとして使用されます。

    • WSDLファイル(xxx.wsdl)では、サービス定義のSOAPアドレスとして使用されます。

    このオプションのデフォルト値には、選択されたWARプロジェクトの名前およびWebサービスに対してマップするサーブレットが含まれます。たとえば次のように使います。

      http://localhost/WebServiceSample/MyObject
    

    WebサービスをNovell exteNd Application Serverに展開する場合、次のようにURLにターゲットデータベースの名前を挿入する必要があります。

      http://localhost/WebServiceSampleDB/WebServiceSample/MyObject
    

  3. [完了]をクリックします。




Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...