第10章
この章では、Novell exteNd Director 開発環境のWebサービスウィザードについて説明します。このウィザードを使用すると、Webサービスを実装したり、呼び出したりするためのファイルを生成できます。トピックは次のとおりです。
Webサービスの概念、標準、および技術の紹介については、を参照してください。
Webサービスウィザードでは、次のタスクのいずれかを実行できます。
標準(SOAPベース)のWebサービスを生成する - Javaリモートオブジェクトとして実装されます。ウィザードにより、WebサービスへのアクセスおよびHTTP SOAP要求からのメソッドを処理するサーブレットが作成されます。
Javaベースのコンシューマプログラムに必要なコードを生成する - 標準(SOAPベース)の任意のWebサービスにアクセスすることができます。生成されたコードにより背後で行われるすべてのHTTP SOAPプロセスが処理され、コンシューマプログラムでWebサービスをJavaリモートオブジェクトとして呼び出したり、そのメソッドを呼び出したりできるようになります。
いずれの場合も、ウィザードでは、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サービスウィザードは複数の異なるコンパイラを使用して、要求された出力を生成します。
実行するコンパイラおよびその順序は、ウィザードのパネルへの入力時に設定したタイプおよび選択したオプションに応じて決定されます。
ウィザード以外の方法 コマンドラインから手動で個別のwsdl2java、xsd2java、rmi2soap、およびrmi2wsdlコンパイラを実行できます。詳細については、Web Services SDKヘルプを参照してください。
この節では、Webサービスウィザードを使用するための準備、実行、および出力の処理について説明します。
操作 |
参照 |
---|---|
ウィザードを使用して、次のいずれかに基づき「新しいWebサービス」を作成する |
|
ウィザードを使用して、WSDLファイルに基づき「既存のWebサービス」にアクセスするためのコードを作成する |
この節では、Webサービスウィザードで入力が必要なパネルについて、シナリオごとに説明します。
開始条件 |
使用するパネル |
---|---|
JavaBeanまたはその他のJavaクラス |
|
EJBセッションBeanのホームインタフェース |
|
EJBセッションBeanのリモートインタフェースまたはSessionBeanクラス自体 |
|
Javaリモートインタフェース |
|
WSDLファイル |
この節では、Webサービスウィザードの各パネルのオプションについて説明します。パネルは、次のとおりです。
このパネルでは、ウィザードで生成されたWebサービスファイルを保存するプロジェクトの場所(プロジェクト、ディレクトリ、パッケージ)に関する詳細を指定します。このパネルには2種類あります。
その他の状態(JavaBean、Javaクラス、EJBセッションBean、またはJavaリモートインタフェース)から開始する場合、ウィザードは次のように表示されます。
このパネルでは、パッケージを指定しません(ウィザードは、後のパネルで設定されるクラスまたはインタフェースからパッケージに関する情報を取得するため)。
オプション |
操作内容 |
---|---|
開いているオプションに追加 |
生成されたファイルをウィザードで保存するプロジェクトを選択します。このオプションを使用すると、現在開いているプロジェクトのリストから選択できます。 Webサービスを生成する場合、通常WARプロジェクトを選択します。 必要に応じて代わりにJARファイルを選択できますが、その場合WebサービスのサーブレットをマップするWARプロジェクトを指定するよう求められます。WARプロジェクトの選択を参照してください。 WSDLファイルからWebサービスを生成する場合、ウィザードでは現在のところJARプロジェクトを選択できません。WARプロジェクトを選択する必要があります。 Webサービスコンシューマを生成する場合、任意のタイプのプロジェクトを選択できます。 |
プロジェクトの作成 |
使用する新しいプロジェクトを作成する場合、このボタンをクリックします。[新規プロジェクト]ダイアログボックスが表示されます。
|
プロジェクトがありません - ディスクにファイルを書き込んでください |
このオプションは無効になっています。Webサービスウィザードでは、生成されたファイルは開いているプロジェクトに追加する必要があります。 |
このパネルは、JARプロジェクトでWebサービスを保存する場合に必要なWARプロジェクトを指定する際に使用します。ウィザードにより、Webサービスの「サーブレットマッピング」に伴いWARの展開記述子(web.xml)が更新されます。
オプション |
操作内容 |
---|---|
WARプロジェクト |
WebサービスのサーブレットをマップするWARプロジェクトを選択します。このオプションを使用すると、現在開いているWARプロジェクトを選択できます。 |
プロジェクトの作成 |
使用する新しいWARプロジェクトを作成する場合、このボタンをクリックします。[新規プロジェクト]ダイアログボックスが表示されます。
|
このパネルは、ウィザードがWebサービスファイルを生成するコンパイル済みのクラスを選択する場合に使用します。サポートされている選択肢は次のとおりです。
注記: このパネルでは、オーバーロードされたメソッド名を定義するEJBやリモートインタフェースを選択することはできません。Webサービスインタフェース(WSDL 1.2以降)では、メソッド名のオーバーロードはできません。ウィザードを起動する前に、クラスから削除しておく必要があります。
デフォルトでは、選択されたプロジェクトのビルドディレクトリでコンパイル済みのクラスが検索され、[使用できるクラス]ボックスに表示されます。WARプロジェクトの場合、このリストはビルドディレクトリのWEB-INF/classesから特に生成されます。
このパネルは、ウィザードがWebサービスファイルを生成するWSDLクラスを選択する場合に使用します。プロジェクト、ファイルシステム、または(URLを指定することにより)Webから選択できます。
注記: WSDLファイルから新しいWebサービスの生成を計画している場合、そのWSDLファイルを事前に編集し、サービス定義のSOAPアドレスで正しいバインドURLが指定されていることを確認する必要があります。Webサービスウィザードでは、Webサービスに対して生成するファイルでこのURLを使用します。
注記: このパネルでは、オーバーロードされたメソッド名を定義するWSDLファイルを選択することはできません。Webサービスインタフェース(WSDL 1.2以降)では、メソッド名のオーバーロードはできません。ウィザードを起動する前に、WSDLファイルから削除しておく必要があります。
デフォルトでは、選択されたプロジェクトのパネルで.wsdlファイルが検索され、[プロジェクトのWSDLファイル]ボックスに表示されます。
ターゲットのWSDLファイルのURLを[使用するWSDLファイルまたはURL]に入力します。たとえば次のように使います。
http://upload.eraserver.net/circle24/autoloan.asmx?wsdl
このパネルは、XMLスキーマの複雑なタイプに対して複数のネームスペースが使用されているWSDLファイルから生成する場合に使用します。各ネームスペースを個別のJavaパッケージにマップできます。
注記: このパネルのマッピングは、クラス生成およびSOAPオプションパネルで[完全なXMLタイプをJavaタイプにマップする]オプションがオンの場合にのみ使用されます。
このパネルには該当するネームスペースが表示され、それぞれに対してデフォルトのパッケージ名が入力されます。任意のパッケージ名は編集することができます。各ネームスペースに対して固有なパッケージ名が指定されていることを確認してください。
このパネルは、クラス選択パネルで指定したEJBセッションBeanクラスまたはリモートインタフェースに対応するホームインタフェースの選択に使用します。
デフォルトでは、このパネルはEJBセッションBeanクラスまたはリモートインタフェースが存在する場所を対象として、ホームインタフェース(javax.ejb.EJBHomeを拡張するコンパイル済みのクラス)を検索します。見つかった場合は、[使用できるクラス]ボックスのリストに表示されます。
このパネルでは、選択されたEJBセッションBeanを、WebサービスがJNDI検索する際に必要となる情報を指定します(JNDIとは、Java Naming and Directory Interfaceの略です)。
このパネルには、Novell exteNd Application Serverに表示されているセッションBeanの検索に対応したデフォルトの初期コンテキスト値が表示されます。その他のJ2EEサーバの要件に関する情報については、該当するドキュメントを参照してください。
オプション |
操作内容 |
---|---|
文字列のルックアップ |
ターゲットのJ2EEサーバでセッションBeanが登録されているサブコンテキストおよびJNDI名を指定します。たとえば、ejbサブコンテキストでJNDI名が「SBMyEJB」のセッションBeanを検索するには、次のように入力します。 ejb/SBMyEJB |
ウィザードでは、web.xml展開記述子で生成されるejb-ref宣言にこの情報が含まれます。JNDI検索を実行する場合この情報がランタイム時にどのように使用されるか学習するには、xxxDelegate.java (結合サーブレットに対して生成される委任クラス)のgetSessionBean()メソッドを参照してください。
ウィザードでは、web.xml展開記述子で生成されるservlet宣言にこの情報が含まれます。ランタイム時にこの値がどのように使用されるか学習するには、xxxDelegate.javaのgetInitialContext()メソッドを参照してください。
このパネルは、JavaBeanまたはその他のJavaクラスからWebサービスファイルを生成する際に表示されるメソッドを選択する場合に使用します。
注記: Webサービスインタフェース(WSDL 1.2以降)では、メソッド名のオーバーロードはできません。そのためこのパネルでは、同じ名前のメソッドを複数選択することはできません。
このパネルでは、選択したクラスが確認され、その有効なメソッドが[使用できるメソッド]ボックスに表示されます。
このパネルは、JavaBean、Javaクラス、EJBセッションBean、またはJavaリモートインタフェースからWebサービスを生成する際、バインドスタイルを指定するために使います。
ドキュメントスタイルとリテラルエンコーディング この形式の場合、SOAPメッセージの本文には、交換されるXMLドキュメントおよびWSDLファイルのXMLスキーマでリテラルとして定義された要素へのメッセージパートのマップのみが含まれます。
RPCスタイルとSOAPエンコーディング この形式の場合、SOAPメッセージの本文には、指定のエンコードルールを各メッセージパートのタイプに適用することによって受信者が解釈する必要があるアドホックな要素で個別にラップされた、引数および戻り値が含まれます。
このオプションを選択する場合、使用するWebサービスに影響するあらゆるWebサービス環境の要件を考慮する必要があります。ほとんどの場合いずれのスタイルでも動作しますが、環境によっては特定のスタイルが必要です。
このパネルは、Webサービス用に生成するWSDLファイルに記述する、XMLスキーマ情報を指定するために使います。次のような場合に、Webサービスウィザードから、この情報の入力を求められます。
生成元が、org.w3c.dom.Elementタイプのメソッドパラメータ(引数または戻り値)を定義するクラス(JavaBean、Javaクラス、EJBセッションBean、またはJavaリモートインタフェース)である場合
バインドスタイルパネルで[ドキュメントスタイルとリテラルエンコーディング]を指定した場合
関連する2つのスキーマ情報パネルがあります。
[スキーマに含まれる内容]パネルでは、生成されるWSDLに含める、0個以上のスキーマ(XSD)ファイルのパスまたはURLを指定します。
[メソッドタイプのマッピング]パネルでは、各要素メソッドパラメータから、あるスキーマの修飾名へのマッピングを指定します。
あるいは、パラメータをサンプルXMLインスタンスデータファイルにマップしても構いません。この場合ウィザードは、インスタンスデータをもとにスキーマ情報を生成します。
注記: このパネルで指定した情報は、クラス生成およびSOAPオプション[WSDLファイルの生成]チェックボックスがオンになっている場合に限って使われます。
パネルに列挙されている各メソッドパラメータについて、次のように操作します。
作業内容 |
操作手順 |
---|---|
メソッドパラメータを、列挙されているスキーマの修飾名にマップします。 |
そのパラメータの情報行で次のように操作します。 |
メソッドパラメータからインスタンスデータファイルにマップします。 |
そのパラメータの情報行で次のように操作します。 |
このパネルは、(スケルトン、結合、およびスタブクラスを含め)生成するWebサービスファイルを選択して、ファイルでエンコードするSOAP実装の詳細を指定する場合に使用します。このパネルには2種類あります。
その他の状態(JavaBean、Javaクラス、EJBセッションBean、またはJavaリモートインタフェース)から開始する場合、ウィザードは次のように表示されます。
オプション |
操作内容 |
---|---|
スタブを生成する |
このオプションをオンにすると、Webサービスを使用するためのサービスクラス、スタブクラスなどのクラスおよび簡単なクライアントアプリケーションが生成されます。次のソースファイルが取得されます。 |
スケルトンを生成する |
このオプションをオンにすると、Webサービスを実装するためのクラスが生成されます。次の実装モデルから1つ選択します。 |
WSDLファイルの生成 |
(表示されている場合)このオプションをオンにすると、次のファイルが生成されます。 レジストリに公表する場合に便利な標準のWSDL形式でWebサービスを記述します。ウィザードにより、このファイルはソースツリー(一般名はsrc)のベースディレクトリに保存されます。 |
jBroker Web 1.x対応クラスを生成する |
このオプションをオンにすると、次の情報に対する従来のjBroker Web(バージョン1.x)の表記規則に対応する特定のファイルが生成されます。 これらの表記規則を除き、生成されたファイルはWebサービスSDKの最新バージョンに従います。 このオプションは、jBroker Web 1.xで作成されたアプリケーションを維持し、現在の規則(JAX-RPCが基礎になっており、既存のコードを一部変更する必要があります)に切り替える準備がまだできていない場合にのみ使用します。
|
ローカルXSDファイルが存在するディレクトリ |
(表示されている場合)選択したWSDLファイルのタイプ定義が、インポートされるXSDファイルに従属している場合、オプションでそのコピーを含むローカルディレクトリを指定できます。WSDLファイルで指定された場所に基づきウィザードが特定のXSDファイルにアクセスできない場合、ローカルディレクトリでそのXSDファイルが検索されます。
|
完全なXMLタイプをJavaタイプにマップする |
(表示され、有効になっている場合)このオプションをオンにすると、選択されたWSDLファイルで(XMLスキーマにより)定義されている複雑なタイプを特定のJavaタイプにマップすることができます。ウィザードによりすべての複雑なXMLタイプをorg.w3c.dom.Element Javaタイプにマップする場合、このオプションをオフにします。 WSDLファイルでバインドスタイルがRPCと指定されていれば、このオプションは自動的にオンになります。オフにすることはできません。 |
Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved. more ...