Top Banner
Novell exteNd Workbench 4.1 www.novell.com チュートリアル : WEB サービスの操作
98

Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

May 15, 2018

Download

Documents

lamtram
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

NovellexteNdWorkbench www.novell.com

4.1 www.novell.com

チュートリアル : WEB サービスの操作

Page 2: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

保証と著作権

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

SilverStream ソフトウェア製品は、SilverStream Software LLC により著作権とすべての権利が保留されています。

ソフトウェアとマニュアルの所有権、および特許、著作権、およびそれに関連するその他のすべての財産権は常に、単独

で排他的に SilverStream とそのライセンサーに保留され、当該所有権と矛盾するいかなる行為も行わないものとします。 本ソフトウェアは、著作権法と国際条約規定で保護されています。 ソフトウェアならびにそのマニュアルからすべての著作

権に関する通知とその他の所有権に関する通知を削除してはならず、ソフトウェアとそのマニュアルのすべてのコピーま

たは抜粋に当該通知を複写しなければなりません。 本ソフトウェアのいかなる所有権も取得するものではありません。

Novell, Inc.

1800 South Novell Place

Provo, UT 85606

www.novell.com

exteNd Workbench チュートリアル : Web サービスの操作

2003 年 2 月

オンラインマニュアル : この製品およびその他の Novell 製品のオンラインマニュアルや更新情報については、www.novell.com/documentation を参照してください。

Page 3: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

Novell の商標

exteNd は、米国 Novell, Inc. の商標です。

exteNd Composer は、米国 Novell, Inc. の商標です。

exteNd Director は、米国 Novell, Inc. の商標です。

jBroker は、米国 Novell, Inc. の商標です。

Novell は、Novell, Inc. の登録商標です。

SilverStream の商標

SilverStream は SilverStream Software, LLC の登録商標です。

すべてのサードパーティの商標は、各所有者に帰属します。

サードパーティのソフトウェアの保証と著作権

Jakarta-Regexp Copyright ©1999 The Apache Software Foundation. All rights reserved. Ant Copyright ©1999 The Apache SoftwareFoundation. All rights reserved. Xalan Copyright ©1999 The Apache Software Foundation. All rights reserved. Xerces Copyright©1999-2000 The Apache Software Foundation. All rights reserved. Jakarta-Regexp、Ant、Xalan、Crimson、および Xerces ソフト

ウェアは、The Apache Software Foundation によりライセンスを付与され、Jakarta-Regexp、Ant、Xalan、Crimson、および

Xerces のソースおよびバイナリ形式での再配布および使用は、変更のあるなしにかかわらず、以下の条件が満たされるこ

とを前提として許可されます。 1. ソースコードの再配布に上記の著作権に関する通知、条件のリスト、および以下の権利

放棄に関する通知が記載されていること。 2. バイナリ形式の再配布では上記の著作権に関する通知、条件のリスト、およ

び以下の権利放棄に関する通知がマニュアルまたは配布の際に提供されるその他の資料、あるいはその両方に記載されて

いること。 3. エンドユーザの資料には、適宜、以下の通知を再配布の際に含めてください。 「この製品には、Apache SoftwareFoundation (http://www.apache.org/) により開発されたソフトウェアが含まれています」 代わりに、この謝辞をソフトウェア

自体に表示し、当該サードパーティに対する謝辞が通常表示される場所に表示することもできます。 4. 「The JakartaProject」、「Jakarta-Regexp」、「Xerces」、「Xalan」、「Ant」、および「Apache Software Foundation」は、書面による事前の許可

なく、このソフトウェアから派生する製品を推薦したり、販売促進したりするのに使用してはなりません。 書面による許

可については、[email protected] <mailto:[email protected]> にお問い合わせください。 5. 本ソフトウェアから派生する製

品は「Apache」と呼ばれてはならず、「Apache」は The Apache Software Foundation の事前の書面による許可なくその名前

に使用することはできません。 本ソフトウェアは「現状のまま」提供され、いかなる明示的、暗黙の保証も行われるもの

ではありません。販売可能性や特定の目的に対する適合性に対する暗黙の保証も行われません。 いかなる場合でも、ApacheSoftware Foundation またはその関係者はいかなる直接的、間接的、偶発的、特別な、免除的、または結果的な損害 ( 代替品

やサービスの調達、使用機会、データ、または利益の喪失、または業務の中断などを含む ) についても、理論上責任があ

る場合でも、契約上の責任がある場合でも、厳密な責任、または瑕疵 ( 怠慢などを含む ) があった場合でも、ソフトウェ

アの使用の過程で生じ、当該損害の可能性を助言した場合であっても、責任を持ちません。

Copyright ©2000 Brett McLaughlin & Jason Hunter. All rights reserved. ソースおよびバイナリ形式での再配布および使用は、変

更のあるなしにかかわらず、以下の条件が満たされることを前提として許可されます。 1. ソースコードの再配布に上記の

著作権に関する通知、条件のリスト、および以下の権利放棄に関する通知が記載されていること。 2. バイナリ形式の再配

布では上記の著作権に関する通知、条件のリスト、および以下の権利放棄に関する通知がマニュアルまたは配布の際に提

供されるその他の資料、あるいはその両方に記載されていること。 3. 「JDOM」という名前は、書面による事前の許可な

く、このソフトウェアから派生する製品を推薦したり、販売促進したりするのに使用してはなりません。 書面による許可

については、[email protected] <mailto:[email protected]> にお問い合わせください。 4. 本ソフトウェアから派生する製品は

「JDOM」と呼ばれてはならず、「JDOM」は JDOM Project Management ([email protected] <mailto:[email protected]>) の事前の書面

による許可なくその名前に使用することはできません。 本ソフトウェアは「現状のまま」提供され、いかなる明示的、暗

黙の保証も行われるものではありません。販売可能性や特定の目的に対する適合性に対する暗黙の保証も行われません。

いかなる場合でも、Apache Software Foundation またはその関係者はいかなる直接的、間接的、偶発的、特別な、免除的、

または結果的な損害 ( 代替品やサービスの調達、使用機会、データ、または利益の喪失、または業務の中断などを含む )についても、理論上責任がある場合でも、契約上の責任がある場合でも、厳密な責任、または瑕疵 ( 怠慢などを含む ) があった場合でも、ソフトウェアの使用の過程で生じ、当該損害の可能性を助言した場合であっても、責任を持ちません。

Title for Your Book-3

Page 4: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

Sun Microsystems, Inc. Sun, Sun Microsystems, Sun Logo Sun、Sun のロゴ、Sun Microsystems、JavaBeans、Enterprise JavaBeans、JavaServer Pages、Java Naming and Directory Interface、JDK、JDBC、Java、HotJava、HotJava Views、Visual Java、Solaris、NEO、

Joe、Netra、NFS、ONC、ONC+、OpenWindows、PC-NFS、SNM、SunNet Manager、Solaris sunburst design、Solstice、SunCore、SolarNet、SunWeb、Sun Workstation、The Network Is The Computer、ToolTalk、Ultra、Ultracomputing、Ultraserver、Where TheNetwork Is Going、SunWorkShop、XView、Java WorkShop、Java Coffee Cup のロゴ、Visual Java、および NetBeans は、米国

およびその他の国の Sun Microsystems, Inc. の商標ならびに登録商標です。

Copyright ©2001 Extreme! Lab, Indiana University License. http://www.extreme.indiana.edu. 同社により許可が無料で、IndianaUniversity ソフトウェアと関連する Indiana University のドキュメントファイル (「IU Software」) のコピーを取得したすべて

の人に、制限なく IU Software を取り扱うために付与されます。その際に、IU Software の使用、コピー、変更、マージ、公

開、配布、サブライセンス、または販売、あるいはそれらのすべてに関する権利に制限はなく、IU Software が指定した人

に以下の条件に基づき権利を付与します。 上記の著作権に関する通知とその許可に関する通知は、IU Software のすべての

コピーおよび主要部分に含まれる必要があります。 本 IU ソフトウェアは「現状のまま」提供され、いかなる明示的、暗黙

の保証も行われるものではありません。販売可能性、特定の目的に対する適合性や権利侵害がないことに対する暗黙の保

証も行われません。 いかなる場合でも、作成者または著作権所有者は、契約上の責任がある場合でも、厳密な責任、また

は瑕疵 ( 怠慢などを含む ) があった場合でも、IU Software に関連して、または IU Software の使用やその他の取引の過程で

生じた場合であっても、クレーム、損害、その他の責任について責任を持ちません。

本ソフトウェアは、著作権を持つ SSLavaTM Toolkit の一部です。Copyright ©1996-1998 by Phaos Technology Corporation. AllRights Reserved. Phaos ソフトウェアの機能にアクセスすることは禁じられています。 Copyright © 1994-2002 W3C® (Massachusetts Institute of Technology, Institut National de Recherche Informatique et en Automatique,Keio University), all Rights Reserved. http: www.w3.org/consortium/legal. この W3C の成果物 ( ソフトウェア、ドキュメント、ま

たはその他の関連品目を含む ) は、以下のライセンスの下で著作権所有者により提供されています。 この成果物の取得、使

用、またはコピー、あるいはそれらのすべてにより、ライセンシーは以下の条件を読み、理解し、遵守することに合意す

るものとします。 本ソフトウェアとそのドキュメントの使用、コピー、変更、および配布は、変更のあるなしにかかわら

ず、いかなる目的でも無料または本契約で許可された使用料をもって許可されます。ただし、変更箇所を含む本ソフトウェ

アとドキュメントのすべてまたはその一部に以下のとおり記述することを前提とします。 1. この通知の全文は、再配布物

または派生物のユーザが見やすい場所に掲示しなければなりません。 2. すべての前もって存在する知的所有権の放棄、通

知、または条件。 存在しない場合は、以下の形式の短い通知 ( ハイパーテキストが望ましい、テキストでも良い ) を再配布

または派生コードの本文内で使用しなければなりません。 「Copyright © [$date-of-software] World Wide Web Consortium,(Massachusetts Institute of Technology, Institut National de Recherche en Informatique et en Automatique, Keio University). All RightsReserved. http://www.w3.org/Consortium/Legal/」 3. W3C のファイルに変更または修正を加えた場合はその日付を含む通知。 ( コードが派生する場所への URI を示すことをお勧めします。) 本ソフトウェアは「現状のまま」提供され、いかなる明示

的、暗黙の保証も行われるものではありません。販売可能性、特定の目的に対する適合性やサードパーティの特許、著作

権、商標またはその他の権利を侵害しないことに対する暗黙の保証も行われません。 著作権の所有者は本ソフトウェアま

たはマニュアルの使用の結果生じる、直接的、間接的、特殊な、または結果的な損害に対していかなる責任も負いません。

著作権所有者の名前および商標は、特別な書面による事前の承諾なしにソフトウェアに関する広告や広報に使用してはな

りません。 本ソフトウェアおよび関連する資料の著作権の所有権は常に、著作権所有者に帰属するものとします。

Page 5: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

目次

このガイドについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1 Web サービスのレジストリおよび WSDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7学習する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

実行する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Web サービスのレジストリ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

レジストリについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8Workbench でのレジストリの参照 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

エクササイズ 1-1: パブリックレジストリのプロファイルを作成する . . . . . . . . . . . . . . . . . . . . . . . . 8エクササイズ 1-2: ビジネスを検索する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

ビジネスに関する情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11サービスに関する情報の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

エクササイズ 1-3: ビジネスのサービスを確認する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11サービスに関する情報 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

WSDL エディタの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13エクササイズ 1-4: Calculator Web サービスの WSDL ファイルを作成する . . . . . . . . . . . . . . . . . . 14

要素を挿入するためのツール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16エクササイズ 1-5: バインド要素を追加する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16エクササイズ 1-6: サービス要素を追加する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

様式化されたビュー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20エクササイズ 1-7: 様式化されたビューを変更する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

WSDL エディタツールバー . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22エクササイズ 1-8: WSDL から Java リモートインタフェースを生成する. . . . . . . . . . . . . . . . . . . . 22

公開について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26実行した内容のまとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

2 Web サービスの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27学習する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

実行する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27J2EE を使用した Web サービス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

JAX-RPC および RMI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28Workbench および jBroker Web. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

サービスの WAR プロジェクトの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29エクササイズ 2-1: プロジェクトのディレクトリをセットアップする . . . . . . . . . . . . . . . . . . . . . . . 30エクササイズ 2-2: 新しいプロジェクトを作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30エクササイズ 2-3: ソースコードをプロジェクトに追加する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32エクササイズ 2-4: jBroker Web ライブラリをプロジェクトに追加する . . . . . . . . . . . . . . . . . . . . . 33エクササイズ 2-5: プロジェクトを作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Web サービスコードの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36エクササイズ 2-6: Web Service ウィザードを実行する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

配備の準備. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42配備記述子について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

エクササイズ 2-7: アーカイブを作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43エクササイズ 2-8: 配備記述子を検査する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

プロジェクトの配備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

1

Page 6: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

エクササイズ 2-9: プロジェクトを配備する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45J2EE サーバのクラスパスの更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Web サービスのテスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

エクササイズ 2-10: テストクライアントコードを編集する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48エクササイズ 2-11: 生成したクライアントを使用して Web サービスをテストする . . . . . . . . . . . . 49

実行した内容のまとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3 Web サービスのクライアントアプリケーションの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51学習する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

実行する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51Web サービスについての情報の取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52プロジェクトのセットアップ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

エクササイズ 3-1: プロジェクトディレクトリをセットアップし、WSDL ファイルを取得する. . . 53エクササイズ 3-2: 新しいプロジェクトを作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53エクササイズ 3-3: プロジェクト作成用のクラスパスを設定する . . . . . . . . . . . . . . . . . . . . . . . . . . 54

WSDL からのクライアントコードの生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55エクササイズ 3-4: WSDL からクライアントコードを生成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

ウィザードの結果. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58クライアントアプリケーションの編集およびテスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

エクササイズ 3-5: テストクライアントコードを編集する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59エクササイズ 3-6: 生成したクライアントを使用して Web サービスをテストする . . . . . . . . . . . . . 60

実行した内容のまとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4 J2EE Web アプリケーションでの Web サービスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63学習する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

実行する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Web サービスクライアントアプリケーションの WAR プロジェクトの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . 64

エクササイズ 4-1: 新しいプロジェクトを作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64エクササイズ 4-2: jBroker Web ライブラリをプロジェクトに追加する . . . . . . . . . . . . . . . . . . . . . 66

プロジェクトへの Web サービスクライアントコードの追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68エクササイズ 4-3: Calculator Web サービスのクライアントコードを生成する . . . . . . . . . . . . . . . 69

Calculator Web サービスを呼び出すフォームの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69エクササイズ 4-4: 新しい JSP ページを作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70エクササイズ 4-5: JSP ページを編集する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72エクササイズ 4-6: magicnumber.jsp に含める 2 番目の JSP ページを作成する . . . . . . . . . . . . . . . 73エクササイズ 4-7: JavaBean を作成してフォームを処理する. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

WAR の配備およびテスト . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79配備記述子について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

エクササイズ 4-8: アーカイブを作成する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79エクササイズ 4-9: 配備記述子を編集する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

プロジェクトの配備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82エクササイズ 4-10: プロジェクトを配備する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82エクササイズ 4-11: Calculator クライアントアプリケーションをテストする . . . . . . . . . . . . . . . . . 84

実行した内容のまとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

5 テスト方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87学習する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

2 チュートリアル : Web サービスの操作

Page 7: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

実行する内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87ブラウザでの WSDL の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

エクササイズ 5-1: 配備した Web サービスの WSDL を表示する . . . . . . . . . . . . . . . . . . . . . . . . . . 88TcpTunnel を使用したメッセージトラフィックの検査 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

エクササイズ 5-2: クライアントコードを編集して、TcpTunnel にメッセージを

リダイレクトする . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90エクササイズ 5-3: TcpTunnel を使用してクライアントを実行し、メッセージトラフィックを

監視する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90実行した内容のまとめ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

É`ÉÖÅ[ÉgÉäÉAÉã: WebÉTÅ[ÉrÉXÇÃëÄçÏ-3

3

Page 8: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

4 チュートリアル : Web サービスの操作

Page 9: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

このガイドについて

目的

このチュートリアルでは、Novell® exteNd ™ Workbenchを使用して、Web サービスを開

発する方法について説明します。 学習内容は次のとおりです。

Web サービスおよび WSDLRegistry Manager

WSDL エディタ

Web Service ウィザード

Workbench プロジェクト

J2EE WAR にパッケージ化された Web アプリケーション

対象読者

このチュートリアルは、Web サービスの作成について学習しながら、Workbench プロ

ジェクトの概要について理解しようとする開発者を対象としています。

前提条件

経験 このチュートリアルでは、Workbench を使用して J2EE アプリケーションを開

発しようとしている Java プログラマが読者であるという前提で解説していきます。 読者には、次の経験があるものと想定しています。

Java プログラミング言語の使用経験

一般的な XML 構造についての理解

グラフィカル開発環境についての理解

サーブレットといった J2EE の概念についての一般的な理解

Web アプリケーションにおけるブラウザおよびアプリケーションサーバの動作方法についての理解

5

Page 10: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

ソフトウェア Workbench ソフトウェアに加え、次のソフトウェアが必要です。

アプリケーション配備用の J2EE アプリケーションサーバ

このソフトウェアがすでにある場合は、Workbench 配備機能を使用するか ( 可能な場

合 )、ご使用のサーバの配備ツールを使用して、標準ベースの J2EE WAR を J2EE サー

バに配備できます。

必要なソフトウェアがない場合、ダウンロード Web サイトから Novell exteNdApplication Server の評価バージョンをダウンロードできます。

構成

このガイドのレッスンの要約は次のとおりです。

レッスン 説明

1 Webサービスのレジストリお

よび WSDLRegistry Manager および WSDL エディタについて紹

介します。

2 Web サービスの作成 Web Service ウィザードを使用して、Web サービスと

してJavaクラスを折り返すファイルを生成する方法、

および Web サービスを WAR として配備する方法に

ついて説明します。

3 Webサービスのクライアント

アプリケーションの作成

Web Service ウィザードを使用して、クライアントア

プリケーションがリモート Web サービスの呼び出し

時に使用するファイルを生成する方法について説明

します。

4 J2EE Web アプリケーション

での Web サービスの使用

Webサービスを呼び出すJSPページおよびJavaBeanを使用して、Web アプリケーションを作成する方法に

ついて説明します。

5 テスト方法 Web サービスが WSDL を返す方法、および TcpTunnelツールを使用して、クライアントと Web サービス間

で送信されたSOAPメッセージを表示する方法につい

て示します。

6 チュートリアル : Web サービスの操作

Page 11: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

1

Web サービスのレジストリおよび WSDL ÉåÉbÉXÉì 1

学習する内容このレッスンでは、Webサービスのオンラインレジストリを操作するためのWorkbenchツールについて説明します。 また、Web サービスを記述し、レジストリで公開できる

ファイルを作成するために WSDL エディタを使用する方法を示します。

学習内容は次のとおりです。

Web サービスのレジストリ

Workbench でのレジストリの参照

WSDL エディタの使用

実行する内容

1 パブリックレジストリのプロファイルを作成する

2 ビジネスを検索する

3 ビジネスのサービスを確認する

4 Calculator Web サービスの WSDL ファイルを作成する

5 バインド要素を追加する

6 サービス要素を追加する

7 様式化されたビューを変更する

8 WSDL から Java リモートインタフェースを生成する

所要時間 約 20 分

注記 : このレッスンでは、J2EE アプリケーションサーバを実行する必要はありません。

7Web サービスのレジストリおよび WSDL

Page 12: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

Web サービスのレジストリWeb サービスを公開する、または使用可能な Web サービスを検索する場合は、レジス

トリを使用します。 このレッスンでは、Registry Manager を使用してレジストリセット

を認識する方法およびレジストリ内容を検索する方法を説明します。

レジストリについて

Web サービスのレジストリは、Web サービスおよびその他のサービスに関する情報の

リポジトリです。 ビジネスやそのサービスに関する情報の検索および公開をサポート

します。

プロバイダは Web サービスの作成後、レジストリ内のサービスおよびビジネスに関す

る情報を公開できます。そうすると、将来のコンシューマは、サービスを見つけてど

のように使用するか学習できます。 コンシューマは Web サービスを検索する際、レジ

ストリをクエリしてニーズに合ったサービスおよびビジネスを検索し、それらのサー

ビスの使用に関する情報を取得できます。

レジストリには、ビジネスやWebサービスに関する情報が、UDDI (Universal Description,Discovery and Integration) または ebXML (Electronic Business eXtensible Markup Language)などの標準化された XML ベースの形式で保存されます。 通常、レジストリをホストす

るビジネスは、レジストリに公開したり、レジストリをクエリしたりするための Webページまたは GUI インタフェースを提供します。 その他のツールでは標準の API を使

用して、固有のインタフェースを表示できます。

Workbench でのレジストリの参照Registry Manager は、ナビゲーションペインの[Registries]タブにあります。 上のパネ

ルに登録されているビジネスが、下のパネルにサービスが表示されます。 1 つまたは複

数のレジストリからリストを表示することができます。

Registry Manager を使用するには、アクセスするレジストリのプロファイルを定義しま

す ( 複数の主要なレジストリについては、すでに定義されています )。 そして、検索文

字列を指定してビジネスまたはサービスを検索します。 入力した文字列で始まるビジ

ネスまたはサービスがブラウザに表示されます。

エクササイズ 1-1: パブリックレジストリのプロファイルを作成する

このエクササイズでは、Workbench のインストール時に定義される IBM Public Registryのプロファイルを扱います。

1 Workbench を開始します。 Windows の[スタート]メニューから Novell exteNdWorkbench のショートカットを使用できます。

2 メニューから[Edit]、[Profiles]の順に選択します。

8 チュートリアル : Web サービスの操作

Page 13: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3 [Profiles]ダイアログボックスで[Registries]タブを選択します。

4 [Profile name]ドロップダウンリストボックスから[IBM Public Registry]を選

択します。

5 [Edit]ボタンをクリックして、プロファイルを確認します。 プロファイルには次

の値が設定されています。

6 [OK]をクリックして、[Edit a Registry Profile]ダイアログボックスを閉じます。

7 ( オプション ) 設定済みのその他のレジストリについて、プロファイルを確認し

ます。

8 [OK]をクリックして、[Profiles]ダイアログボックスを閉じます。

オプション 値

Profile name IBM Public Registry

Registry type UDDI

Inquiry URL http://www-3.ibm.com/services/uddi/inquiryapi

Publish URL https://www-3.ibm.com/services/uddi/protect/publishapi

User name Credential

空白

後から IBM のアカウントを作成する場合は、アカウント情報を

入力して IBM レジストリに公開することができます。

Include in RegistrySearch

オンになっています。

このチェックボックスをオフにすると、レジストリは検索され

ません。プロファイルを削除しなくても済みます。

チュートリアル : Web サービスの操作 -9

Web サービスのレジストリおよび WSDL 9

Page 14: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

エクササイズ 1-2: ビジネスを検索する

このエクササイズでは、名前が「X」で始まる登録されたビジネスを検索します。

1 ナビゲーションペインで、[Registries]タブを選択します。

ペインには、Business および Service の 2 つのサブペインがあります。

2 [Business]テキストボックスに X という文字を入力し、テキストボックスの横に

ある曲がった青い矢印をクリックします。

ヒント : 縦線 (|) で区切ることにより、複数の検索語を入力できます。 たとえば、X また

は W で始まるビジネスを検索するには、「X|W」と入力します。

定義したレジストリがRegistry Managerにより検索されます。 検索にはしばらく時

間がかかるため、そのままお待ちください。15 秒から 4、5 分かかる場合があり

ます。 赤い[Stop]ボタンをクリックすると検索は停止し、それまでの結果を確

認できます。 ボタンが赤く表示されない場合、検索は終了しています。

[Business]ペインに結果が表示されます。 展開可能なツリーで最初のレベルの

ノードがレジストリで、次のレベルがビジネス名です。

3 リストをスクロールするか、トップレベルのノードを縮小して、結果を返したレ

ジストリを確認します。 ペインは、見やすいように広げたり伸ばしたりできます。

4 さまざまなビジネスのノードを展開して、提供された情報を確認します。

5 XMethods を見つけます。両方のレジストリにあり、ノードを展開するとその内容

を確認できます。

10 チュートリアル : Web サービスの操作

Page 15: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

ビジネスに関する情報

レジストリの情報は、自動的に入力されます。 ビジネスではプロバイダが認識して欲

しい情報が表示され、固有のカテゴリが選択されます。

レジストリの[Business]セクションには、次のタイプの情報が含まれます。

ヒント : [Advanced Search]オプションを使用して ( 双眼鏡のボタンをクリック )、他の検索

方法も試してください。 [Advanced Search]の詳細については、『Tools Guide』の「Registry Manager」を参照してください。

サービスに関する情報の確認Webサービスは、レジストリでビジネスにより公開されるサービスのタイプのサブセッ

トです。 ビジネスは、販売およびサポートの連絡先情報などのサービスだけでなく、プ

ログラムされた Web サービスもリストに表示する場合があります。

エクササイズ 1-3: ビジネスのサービスを確認する

このエクササイズでは、サービスに使用可能な情報、および使用可能な場合にサービ

スに対して WSDL ファイルを取得する方法について学習します。

1 Registry Manager の[Business]ペインで、XMethods ノードを見つけて展開し、

サービスのリストを表示します。

2 XMethods Barnes and Noble Quote サービスをクリックします。

情報

アイ

コン 説明

ビジネス名 このレジストリで使用されるビジネス名。

説明 - ビジネスを説明する短い文章。

カテゴリ ビジネスが属すカテゴリ。

分類スキームには、業界に関する NAICS コード、製品およ

びサービスの分類である UNSPSC、および地理的情報の少

なくとも 3 つのソースがあります。

識別子 DUNS 番号などビジネスに関する情報。

サービス HTTP で呼び出し可能な Web サービスなどのビジネス、お

よびセールスおよびテクニカルサポートの連絡先情報など

のその他のサービスにより提供されるサービスのリスト。

サービス名を選択すると、下のペインに詳細が表示されます。

チュートリアル : Web サービスの操作 -11

Web サービスのレジストリおよび WSDL 11

Page 16: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

Registry Manager によりサービスに関する情報が取得され、[Service]ペインに表

示されます。

3 [Service]ペインでノードを展開し、すべての情報を表示します。 多くの情報を

1 度に表示できるように、ペインのサイズを変更できます。

4 このサービスを記述する WSDL ファイルを取得するには、XMethods Book Quoteと表示されている tModel アイコンの行を選択します。

5 [Service]テキストボックスの上にあるツールバーで、[Retrieve WSDL]アイコ

ンをクリックします。

WSDL エディタで、Book Quote サービスの WSDL ファイルが開きます。 WSDL エ

ディタについては、13 ページの「WSDL エディタの使用」 を参照してください。

Book Quote サービスの場合、「Overview URL」リンクをクリックしてブラウザ

でWSDLファイルを表示することもできます。 XML を認識できるブラウザが必

要です。

12 チュートリアル : Web サービスの操作

Page 17: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

サービスに関する情報

[Service]ペインでは、サービスの提供について技術的な詳細を表示できます。 プログ

ラムによりアクセス可能なサービスの場合、その詳細にはサービスにアクセスする

URL およびサービスが提供するメソッドに関する情報が存在する場所が含まれます。

レジストリのサービスエントリには、次のタイプの情報が含まれます。

ヒント : サービスを検索する際、最初にビジネスを検索する必要はありません。 基本的な検索

ではサービス名が一致し、[Advanced Search]( 双眼鏡のボタン ) を使用するとその他のサービ

スデータが一致します。 詳細については、『Tools Guide』の「Registry Manager」を参照してく

ださい。

WSDL エディタの使用WSDL エディタは、WSDL 要素を処理するための拡張機能を持つ XML エディタです。

通常は、レジストリから取得する Web サービスまたは Web Service ウィザードで生成

される Web サービスの WSDL 定義を使用します。 しかし、WSDL ファイルを編集する

必要がある場合は、このエディタが便利です。

情報

アイ

コン 説明

サービス名 サービスの名前。

ビジネス名 サービスを提供するビジネス。

説明 - サービスを説明する短い文章。

バインド サービスを呼び出すための URL。

tModel サービスを記述するデータ。

UDDI レジストリにより、データは name/value の対のセット

である tModel として保存されます。tModel ノードの後に説明

が存在する場合もあります。

概要の URL - tModel データの使用方法を説明するドキュメントの URL。

Web サービスの場合、通常 WSDL ドキュメントです。

カテゴリ サービスのカテゴリ。

カテゴリには、名前 ( たとえば uddi-org:types) および値 ( たと

えば wsdlSpec) の 2 つの部分があります。 値 wsdlSpec によ

り、WSDL ドキュメントがサービスに使用可能であることが

指定されます。 サービスの他のタイプでは、その他の分類ス

キームを使用できます。

チュートリアル : Web サービスの操作 -13

Web サービスのレジストリおよび WSDL 13

Page 18: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

レッスン 2, 「Web サービスの作成」では、Calculator Web サービスを作成します。 WebService ウィザードでサービスを記述する WSDL を生成できるため、最初から作成す

る必要はありません。 しかし、このレッスンでは最初から作成することにします。

エクササイズ 1-4: Calculator Web サービスの WSDL ファイルを作成する

このエクササイズでは、Calculator Web サービスを記述する新しい WSDL ファイルを

作成します。

1 Workbench で、メニューから[File]、[New]の順に選択します。

2 [New File]ダイアログボックスで[Web Sercices]タブを選択し、[WSDL]を選

択してから[OK]をクリックします。

3 WSDL ウィザードで、次の情報を指定します。

オプション 値

Definition Name CalculatorService

Target Namespace urn:CalculatorImpl

Documentation The four basic arithmetic operations

Include WSDL template オンにします。

テンプレートを含めない場合、ウィザードによりファ

イルの名前に定義名が使用されます。ただし、その他

のフィールドは無視され、新しいファイルは空白にな

ります。

14 チュートリアル : Web サービスの操作

Page 19: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

4 [Finish]をクリックします。

Workbench により WSDL エディタが起動され、編集ペインに WSDL Web サービ

ス定義の初めの部分が表示されます。 この開いたテキストとWeb Serviceウィザー

ドにより生成されたファイルを比較するとわずかな違いがありますが、何の影響

もありません。

5 次の XML テキストを選択し、エディタ内で空白行になっている定義の終了タグ

</definitions> の上に貼り付けます。 4 種類すべての算術演算子に対する要求と応

答メッセージを定義するため、かなり長いテキストです。

注記 : エディタのツールを使用して、メッセージおよび portType 要素を挿入することもで

きます。 これらのツールについては、次の節で説明します。

<types/> <message name="subtractRequest"> <part name="arg0" type="xsd:double"/> <part name="arg1" type="xsd:double"/> </message> <message name="subtractResponse"> <part name="arg2" type="xsd:double"/> </message> <message name="divideRequest"> <part name="arg3" type="xsd:double"/> <part name="arg4" type="xsd:double"/> </message> <message name="divideResponse"> <part name="arg5" type="xsd:double"/> </message> <message name="DivideFault"> <part name="reason" type="xsd:string"/> <part name="x" type="xsd:double"/> <part name="y" type="xsd:double"/> </message> <message name="addRequest"> <part name="arg6" type="xsd:double"/> <part name="arg7" type="xsd:double"/> </message>

チュートリアル : Web サービスの操作 -15

Web サービスのレジストリおよび WSDL 15

Page 20: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

<message name="addResponse"> <part name="arg8" type="xsd:double"/> </message> <message name="multiplyRequest"> <part name="arg9" type="xsd:double"/> <part name="arg10" type="xsd:double"/> </message> <message name="multiplyResponse"> <part name="arg11" type="xsd:double"/> </message> <portType name="CalculatorImplWS"> <operation name="subtract"> <input message="tns:subtractRequest"/> <output message="tns:subtractResponse"/> </operation> <operation name="divide"> <input message="tns:divideRequest"/> <output message="tns:divideResponse"/> <fault message="tns:DivideFault" name="fault1"/> </operation> <operation name="add"> <input message="tns:addRequest"/> <output message="tns:addResponse"/> </operation> <operation name="multiply"> <input message="tns:multiplyRequest"/> <output message="tns:multiplyResponse"/> </operation> </portType>

要素を挿入するためのツール

エディタには、トップレベルの WSDL 要素の挿入を補助するダイアログボックスがあ

ります。 エディタの WSDL には、バインドおよびサービスの 2 つの重要な要素が欠け

ています。 そのため、エディタツールを使用して追加します。

エクササイズ 1-5: バインド要素を追加する

このエクササイズでは、メッセージングの処理方法を指定するバインド要素を追加し

ます。

1 ファイルの下にある編集ペインで、portTypeの終了タグと definitions の終了タグの

間にある空白行をクリックして、挿入場所を設定します。

</portType>[ここが挿入箇所になります]</definitions>

16 チュートリアル : Web サービスの操作

Page 21: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

2 右クリックで WSDL ポップアップメニューを表示して[Insert WSDL Element]を選択し、二次メニューから[Binding]を選択します。

3 [Binding]ダイアログボックスで、次の情報を指定します。

オプション 値

Name CalculatorBinding

Documentation SOAP Binding for Calculator service

Port Type CalculatorImplWS

ヒント : ドロップダウンリストボックスを使用して、ファイルで

定義するポートタイプを選択します。

Binding Protocol SOAP Binding

Style: rpc

Transport: http://schemas.xmlsoap.org/soap/http

チュートリアル : Web サービスの操作 -17

Web サービスのレジストリおよび WSDL 17

Page 22: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

入力を終えたダイアログボックスは、次のようになります。

4 [OK]をクリックします。

ファイルに挿入された XML には、portType 要素で定義された各演算のバインド

情報が含まれます。

エクササイズ 1-6: サービス要素を追加する

このエクササイズでは、サービス要素を追加します。サービス要素により、配備され

た Web サービスを呼び出すためにクライアントアプリケーションが使用する URL が

指定されます。

1 ファイルの下にある編集ペインで、bindingの終了タグとdefinitionsの終了タグの間

にある空白行をクリックして、挿入場所を設定します。

</binding>[ここが挿入箇所になります]</definitions>

18 チュートリアル : Web サービスの操作

Page 23: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

2 右クリックで WSDL ポップアップメニューを表示して[Insert WSDL Element]を選択し、二次メニューから[Service]を選択します。

3 [Service]ダイアログボックスで、次の情報を指定します。

4 [Add]をクリックして、ポート情報を表す行を追加します。

5 ポートを記述する値を次のように入力します。

オプション 値

Name CalculatorService

Documentation URL for locally deployed Calculator Web Service

オプション 値

Name CalculatorPort

Binding CalculatorBinding

ヒント : ドロップダウンリストボックスを使用して、ファイルで

定義するバインドを選択します。

Address Type SOAP

ヒント : ドロップダウンリストボックスを使用して、タイプを選

択します。

Location http://localhost/ProverbsCloud/Calculator/CalculatorImpl

注記 : Webサービスが配備される場所のURLです。 このレッスン

では、このサンプル URL を使用します。実際の URL はまだ必要

ありません。

チュートリアル : Web サービスの操作 -19

Web サービスのレジストリおよび WSDL 19

Page 24: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

入力を終えたダイアログボックスは、次のようになります。

6 [OK]をクリックします。

次の XML がファイルに挿入されます。

<service name="CalculatorService"><documentation>URL for locally deployed Calculator Web Service

</documentation><port name="CalculatorPort" binding="CalculatorBinding"><soap:addresslocation="http://localhost/ProverbsCloud/Calculator/Calculat

orImpl"/></port>

</service>

このレッスンの後の部分では、WSDL エディタのその他の機能の使用方法について説

明します。

様式化されたビュー

WSDL エディタには、WSDL ドキュメントに記述されている XML の内容をレポート

形式で表示する 2 番目のペインがあります。 XML スタイルシートを使用して、内容や

レイアウトをカスタマイズすることができます。 この様式化されたビューで編集する

ことはできません。

エクササイズ 1-7: 様式化されたビューを変更する

このエクササイズでは、提供されたビューを表示して、カスタムビューを追加できる

場所を見つけます。

20 チュートリアル : Web サービスの操作

Page 25: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

1 編集ペインで WSDL ファイルを開き、ペインの下にある[Stylized]タブをクリッ

クします。

WSDL の形式が詳細なビューに変わり、情報が比較的読みやすい形式で表示され

ます。

2 編集する領域を右クリックして、ポップアップメニューから[Stylesheets]、二次

メニューから[Summary]を選択します。

別の形式のビューが表示されます。

チュートリアル : Web サービスの操作 -21

Web サービスのレジストリおよび WSDL 21

Page 26: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3 編集する領域を再び右クリックして、ポップアップメニューから[Stylesheets]、

二次メニューから[Custom]を選択します。

[Select Style Sheet]ダイアログボックスで、デフォルトのスタイルシートである

「Details」、「Summary」、またはカスタムスタイルシートを選択できます。 独自の

XSL スタイルシートを作成すると、別の形式で情報を表示することができます。

4 [Cancel]をクリックして、ダイアログボックスを閉じます。

5 [XML]タブをクリックして、編集可能なビューに戻ります。

6 c:\WorkbenchProjects など、任意のディレクトリにファイルを保存します。 ファイ

ル名は、CalculatorService.wsdl です。 ファイルを閉じます。

WSDL エディタツールバー

WSDL エディタを開くと、メインツールバーに複数のボタンが追加されます。

次のような機能があります。

WSDL DTD の XML を検証する

Workbenchレジストリのプロファイルで定義されているUDDIレジストリにWSDLを公開する ( 選択するレジストリのアカウントが必要 )

WSDL ファイルで定義されているメソッドと一致する Java クラスを生成する

次のエクササイズでは、WSDL から Java クラスを生成する方法について説明します。

エクササイズ 1-8: WSDL から Java リモートインタフェースを生成する

このエクササイズでは、WSDL の仕様からリモートインタフェースクラスおよびその

他の Web サービスクラスを作成します。 生成中の Java ファイルを使用して、新しい

Web サービスまたはクライアントアプリケーションを作成できます。

注記 : このエクササイズでは、開いているプロジェクトが必要です。 コードの生成のみに使用す

るため、任意のプロジェクトを使用できます。 プロジェクトがすでに開いており、そこからファ

イルを生成する場合は、手順 7 から始めてください。

22 チュートリアル : Web サービスの操作

Page 27: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

1 Workbench で、開いているプロジェクトを閉じ、メニューから[File]、[New Project]の順に選択します。

2 New Project ウィザードで、[JAR]を選択してから [OK] をクリックします。

3 [Project Name]フィールドに、CalcWSDLTest と入力します。

4 [Project Location]フィールドの横にある省略記号 (...) をクリックして、Workbenchプロジェクトを配置するディレクトリを選択し、CalcWSDL など新しいディレク

トリ名を入力します。 [Project Location]フィールドには、次のような値が表示さ

れます。

C:\WorkbenchProjects\CalcWSDL

ダイアログボックスの残りの部分は、自動的に入力されます。

チュートリアル : Web サービスの操作 -23

Web サービスのレジストリおよび WSDL 23

Page 28: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

5 [Next]をクリックします。 プロジェクトの場所に対して入力したディレクトリが

存在しない場合は、表示されたメッセージを確認して作成します。

6 最後のパネルで、プロジェクトの詳細を確認してから[Finish]をクリックします。

7 [File]、[Recent Files]の順に選択し、再び[CalculatorService.wsdl]を開きます。

8 WSDL ツールバーで、[Generate Java Class]ボタンをクリックします。

Workbench に、Web Service ウィザードのプロジェクトの場所を指定するパネルが

表示されます。

9 パネルに次のように入力します。 指定が必要な値は、[Package]の calc のみです。

[Next]をクリックすると、Workbench に Web Service ウィザードのクラス生成お

よび SOAP オプション用パネルが表示されます。

24 チュートリアル : Web サービスの操作

Page 29: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

10 このパネルの設定を確認します ( 変更する必要はありません )。

この設定に従って、ウィザードにより Web サービスクライアントのスタブクラス

が生成されます。 生成されたファイルは src\calc ディレクトリに配置され、プロ

ジェクトに追加されます。 これらのオプションの詳細については、レッスン 2,「Web サービスの作成」およびレッスン 3, 「Web サービスのクライアントアプリ

ケーションの作成」を参照してください。

11[Finish]をクリックします。

ウィザードで出力の生成が終了すると、プロジェクトのルートディレクトリの下

の src\calc ディレクトリに生成されたファイルが表示されます。

通常は、クライアントアプリケーションに対し ( リモートインタフェースおよび関連

クラスを含めて ) スタブを生成する場合、WSDL ファイルから開始します。 ただし、骨

組みを生成すれば、Web サービスの作成を始めるのに必要なすべてのものが得られま

す。 必要な別のコードは、Web サービスメソッドのビジネス論理とのリモートインタ

フェースを実装するクラスです。

チュートリアル : Web サービスの操作 -25

Web サービスのレジストリおよび WSDL 25

Page 30: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

公開について

Workbench には、サービスに関する情報を公開する機能もあります。

ほとんどのレジストリでは、公開する前にアカウントを設定する必要があります。 レジストリのプロファイルには、公開する URL、ID、およびパスワードを保存できます。

ヒント : 公開するには、編集ペインでサービスを記述する WSDL ファイルを開きます。 WSDLエディタのツールバーに、[Publish to Registry]ボタンがあります。 表示されるダイアログ

ボックスで、レジストリ、ビジネス名、およびサービス URL を指定できます。 詳細については、

『Tools Guide』の「Registry Manager」を参照してください。

実行した内容のまとめ

Workbench ツールの使用 Workbench で、次のツールを使用しました。

レジストリのプロファイル ([Edit] > [Profiles])

レジストリマネージャ ( ナビゲーションペインの[Registries]タブ )

WSDL エディタ

次のレッスン 次のレッスンでは、Web Service ウィザードについて学習します。 プロ

ジェクトを作成し、Calculator Web サービスのコードを開発します。

26 チュートリアル : Web サービスの操作

Page 31: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

2

Web サービスの作成 ÉåÉbÉXÉì 2

学習する内容このレッスンでは、Web サービスの WAR プロジェクトをセットアップし、Web Serviceウィザードを実行してサービスの SOAP 処理コードを生成する方法について学習しま

す。 サービスのユーザによって呼び出されるメソッドを実装する Java クラスのみを提

供する必要があります。このサンプルでは、これは、add、subtract、multiply、および

divide という単純なメソッドを使用する Calculator です。 その後、Calculator Web サー

ビスを配備し、ウィザードにより提供されたテストツールを使用して、このサービス

をテストします。

学習内容は次のとおりです。

J2EE を使用した Web サービス

サービスの WAR プロジェクトの定義

Web サービスコードの生成

配備の準備

J2EE サーバのクラスパスの更新

Web サービスのテスト

実行する内容

1 プロジェクトのディレクトリをセットアップする

2 新しいプロジェクトを作成する

3 ソースコードをプロジェクトに追加する

4 jBroker Web ライブラリをプロジェクトに追加する

5 プロジェクトを作成する

6 Web Service ウィザードを実行する

27Web サービスの作成

Page 32: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

7 アーカイブを作成する

8 配備記述子を検査する

9 プロジェクトを配備する

10 テストクライアントコードを編集する

11 生成したクライアントを使用して Web サービスをテストする

所要時間 約 15 分

注記 : このレッスンで作成する Web サービスを配備するには、J2EE アプリケーションサーバ

を実行する必要があります。

J2EE を使用した Web サービスWebサービスは、リモートサーバで使用可能なコンポーネントです。 そのインタフェー

スは既知であり、標準化されたメッセージプロトコルを介してメソッドを呼び出すこ

とができます。

J2EE の環境では、Web サービスを J2EE アプリケーションサーバで WAR (Web Archive)にサーブレットとして配備することで、Web サービスが使用できるようにします。 クライアントアプリケーションは、SOAP XML メッセージを使用してリモートメソッド

呼び出しを行います。 リモートサーバの SOAP Dispatcher は、メッセージを受信し、

Web サービスサーブレットにメソッド呼び出しを送ります。 Web サービスは、SOAPメッセージとして戻される値を折り返し、クライアントに送信し直します。

JAX-RPC および RMINovell では、JAX-RPC (Java API for XML-based RPC) および RMI (Java Remote MethodInvocation) に基づく、Web サービスを開発するための J2EE モデルをサポートしてい

ます。 ビジネスメソッドのシグネチャは、リモートインタフェースで宣言されます。

サービスではスケルトンクラスを使用し、またクライアントではスタブクラスを使用

して、サービスとクライアントアプリケーション間での通信を管理します。

スケルトンおよび結合 Web サービスのスケルトンクラスは、リモートインタフェース

を実装します。 スケルトンは、SOAP リクエストの受信、XML から Java データタイプ

への引数の変換、およびビジネスメソッドの呼び出しを行います。 Web サービスには、

スケルトンを拡張し、ビジネスメソッドを実装する別のクラスに、メソッド呼び出し

を委任する結合クラスも含まれます。

スタブ クライアントアプリケーションでは、リモートインタフェースも同様に実装

するスタブクラスを使用します。 クライアントがリモートインタフェースで定義され

たメソッドを呼び出した場合、スタブは保存している URL を使用して呼び出しを Webサービスに送信し、メソッド呼び出しを SOAP メッセージとして転送します。

28 チュートリアル : Web サービスの操作

Page 33: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

これらのクラスの実装の詳細について心配する必要はありません。Novell では、この

コードを生成するツールを提供しています。

Workbench および jBroker Web

Workbench Novell exteNd Workbench では、Web サービスとクライアントアプリケー

ション間での通信に対してコードを生成する Web Service ウィザードを用意していま

す。 Web サービスでは、ビジネスメソッドのコードのみを提供する必要があります。

Web サービスを呼び出すクライアントでは、Web サービスを XML で記述した WSDLファイルから、コードを生成できます。

jBroker Web jBroker Web は、J2EE アプリケーションサーバ上での Web サービスに対

して、コンパイラおよびランタイムサポートを提供する JAX-RPC 実装です。 これは、

Workbench に含まれ、Web Service ウィザードでこのコンパイラを使用して、Web サー

ビスコードを生成します。 配備したアプリケーションには、jBroker Web および関連す

る API JAR へのアクセスが必要となります。

jBroker Web には、コンパイラを直接呼び出すコマンドラインツールが含まれています

が、このツールは、このチュートリアルでは使用しません。 詳細については、jBrokerWeb ヘルプを参照してください。

このレッスンの残りでは、プロジェクトのセットアップ、ウィザードを使用したコー

ドの生成、および結果の配備とテストについて示しながら、Web サービスを作成する

方法について説明します。

サービスの WAR プロジェクトの定義Workbench の Web Service ウィザードは、使用可能にするビジネスメソッドを実装した

り、定義したりするソースオブジェクトで開始します。 このプロセスには、いくつか

の開始点が考えられます。 可能な開始点は、次のとおりです。

ビジネスメソッドを実装する Java クラス

ビジネスメソッドのシグネチャを指定するインタフェース

EJB セッション Bean

Web サービスの操作を指定する WSDL サービス定義

Calculator Web サービスでは、基本的な算術のメソッドを定義する CalculatorImpl クラスを使用します。 また、0 で除算する場合の例外を処理する DivideFault クラスも使

用します。

この節では、Calculator Web サービスの WAR プロジェクトを作成します。 まず、ディ

レクトリを簡単にセットアップします。 その後、Workbench を起動してプロジェクト

ファイルを作成し、プロジェクトに CalculatorImpl.java を追加します。

チュートリアル : Web サービスの操作 -29

Web サービスの作成 29

Page 34: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

エクササイズ 2-1: プロジェクトのディレクトリをセットアップする

このエクササイズでは、ソースファイルのディレクトリを作成します。

1 ご使用のオペレーティングシステムのツールを使用して、CalculatorWS というプ

ロジェクトのルートディレクトリを作成します。 ディスクドライブのルートレベ

ル、または選択したサブディレクトリに配置できます。 チュートリアルのサンプ

ルパスでは、WorkbenchProjects ディレクトリに CalculatorWS を作成したことを想

定しています。 Windows では、次のようになります。

c:\WorkbenchProjects\CalculatorWS

2 CalculatorWS ディレクトリで、src というサブディレクトリを作成し、src ディレク

トリで calc というパッケージサブディレクトリを作成します。

3 ファイル CalculatorImpl.java および DivideFault.java を、Workbench-install-dir\docs\tutorial\TutorialFiles\webservicesディレクトリから、CalculatorWS\src\calcプロジェクトディレクトリにコピーします。

これで、次のようなディレクトリ構造ができます。

WorkbenchProjects\CalculatorWS\src\calc

エクササイズ 2-2: 新しいプロジェクトを作成する

このエクササイズでは、Workbench を起動し New Project ウィザードを使用して、

Calculator Web サービスのプロジェクトを作成します。

1 Workbench を開始します。 Windows の[スタート]メニューから Novell exteNdWorkbench のショートカットを使用できます。

または

Workbench がすでに実行されており、プロジェクトが開いている場合は、メニュー

から[File]>[Close Project]の順に選択します。 開いているファイルを閉じる

よう求められた場合、[Yes]をクリックします。

2 メニューから[File]>[New Project]の順に選択します。

3 New Project ウィザードで、[WAR]を選択してから[OK]をクリックします。

30 チュートリアル : Web サービスの操作

Page 35: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

4 [Project Name]フィールドに、「Calculator」と入力します。

5 [Project Location]フィールド横の省略記号をクリックして、エクササイズ 2-1:「プロジェクトのディレクトリをセットアップする」で作成した CalculatorWSディレクトリを選択します。 [OK]をクリックすると、ダイアログボックスの残

りのフィールドが自動的に記入されます。

6 [Project J2EE Version]フィールドで、[J2EE 1.2 (WAR 2.2)]を指定して、J2EE 1.2または 1.3 をサポートしている任意のサーバでアプリケーションが実行されるよ

うにします。

チュートリアル : Web サービスの操作 -31

Web サービスの作成 31

Page 36: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

7 [Next]をクリックします。

8 ウィザードにより WEB-INF ディレクトリを作成するかどうか尋ねるメッセージ

が表示されたら、[Yes]をクリックします。

ウィザードにより、プロジェクト情報が要約されます。

注記 : [New Project]の選択時に別のプロジェクトが開いていた場合、そのプロジェクト

を現在のプロジェクトに追加することについて、パネルが表示される場合があります。 その

場合、[Add this project]オプションはオンにしないようにします。 [Next]をクリック

して、[Summary]パネルに移動します。

9 [Finish]をクリックします。

ナビゲーションペインで、[Project]タブに新しいプロジェクトが表示されます。

ソースレイアウトビューまたはアーカイブレイアウトビューのいずれかを使用で

きます。

エクササイズ 2-3: ソースコードをプロジェクトに追加する

このエクササイズでは、src ディレクトリをプロジェクトに追加し、J2EE アーカイブ

での場所を指定します。

1 ナビゲーションペインで、[Directory]タブを選択します。

2 WorkbenchProjects/CalculatorWS/src ディレクトリに移動します。

32 チュートリアル : Web サービスの操作

Page 37: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3 src ディレクトリを右クリックして、[Add to Project]を選択します。

4 [Add to Project]ダイアログボックスで、[Add the files to the archive at thislocation]をオンにします。 テキストボックスに、「WEB-INF/classes」と入力し

ます。 [Include subdirectories]はオンのままにします。

5 [OK]をクリックします。

エクササイズ 2-4: jBroker Web ライブラリをプロジェクトに追加する

Web サービスでは、jbroker-web.jar のクラスおよび SOAP メッセージ処理のサポート

JAR を使用します。 このエクササイズでは、これらの JAR をランタイム時のアクセス

用にアーカイブに追加し、コンパイル時のアクセス用にプロジェクトクラスパスに追

加します。

1 Workbench で、メニューから[Project]>[Project Settings]の順に選択します。

2 [Contents]タブを選択し、[Add Entry]ボタンをクリックします。

3 [Select Contents]ダイアログボックスで、Workbench-install-directory/compilelibディレクトリに移動した後、次のファイルを選択して[Open]をクリックします。

jaxrpc-api.jar

jbroker-web.jar

saaj-api.jar

xerces.jar

[Add to Project]ダイアログボックスにより、各ファイルの情報を 1 つずつ入力す

るよう求められます。

4 jaxrpc-api.jar の情報を求められた場合、[Add the file to the archive at this location]をオンにします。 テキストボックスに、「WEB-INF/lib/jaxrpc-api.jar」と入力し

ます。 その後、[OK]をクリックします。

5 jbroker-web.jar の情報を求められた場合、[Add the file to the archive at thislocation]をオンにします。 テキストボックスに、「WEB-INF/lib/jbroker-web.jar」と入力します。 その後、[OK]をクリックします。

チュートリアル : Web サービスの操作 -33

Web サービスの作成 33

Page 38: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

6 saaj-api.jar の情報を求められた場合、[Add the file to the archive at this location]をオンにします。 テキストボックスに、「WEB-INF/lib/saaj-api.jar」と入力します。

その後、[OK]をクリックします。

7 xerces.jar の情報を求められた場合、[Add the file to the archive at this location]を

オンにします。 テキストボックスに、「WEB-INF/lib/xerces.jar」と入力します。 その後、[OK]をクリックします。

これで、アーカイブの WEB-INF/lib ディレクトリに、JAR が含まれます。

8 [Classpath/Dependencies]タブを選択し、[Add Entry]ボタンをクリックします。

34 チュートリアル : Web サービスの操作

Page 39: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

9 [Add to Classpath]ダイアログボックスで、Workbench-install-directory/compilelibディレクトリをもう一度検索し、次のファイルを選択して[Open]、[OK]の順に

クリックします。

jaxrpc-api.jar

jbroker-web.jar

saaj-api.jar

xerces.jar

[Classpath/Dependencies]タブは、次のようになります。

注記 : J2EE クラスのアーカイブが、すでに WAR のクラスパスに含まれています。

10[OK]をクリックして、[Project Settings]ダイアログボックスを閉じます。

これで、プロジェクトに必要な JAR への参照が含まれます。 アーカイブを作成す

ると、これらの JAR が含まれることになります。 また、JAR はアーカイブ作成用

のクラスパスにも含まれています。

チュートリアル : Web サービスの操作 -35

Web サービスの作成 35

Page 40: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

11 ナビゲーションペインで、[Project]タブを選択し、プロジェクトのコンテンツ

を表示します。 [Source layout]を選択して[src]を展開し、[calc]ディレクト

リを選択します。 ここには、CalculatorImpl.java および DivideFault.java が含まれま

す。[Workbench-install-directory/compilelib]エントリをクリックして、下部ペ

インに jbroker-web.jar および他の JAR を表示します。

展開したソースレイアウトは、次のようになります。

エクササイズ 2-5: プロジェクトを作成する

Web Service ウィザードでは、コンパイル済みのファイルを使用するため、プロジェク

トを作成してから呼び出す必要があります。

メニューから[Project]>[Build]の順に選択します。

エラーが表示された場合は、おそらくクラスパスに問題があります。 エクササイ

ズ 2-4:「jBroker Web ライブラリをプロジェクトに追加する」を正しく完了してい

ることを確認してください。

Web サービスコードの生成ソースオブジェクトを Web サービスに変換するには、Web Service ウィザードを実行

します。 このウィザードでは、サーバで XML SOAP リクエストをソースオブジェクト

に対するメソッド呼び出しに変換できるコードが生成されます。

ヒント : Web Service ウィザードでは、開いているプロジェクトが要求され、 このプロジェクト

に生成したファイルが挿入されます。

36 チュートリアル : Web サービスの操作

Page 41: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

Web サービスの URL について ウィザードを実行する際に指定する情報の 1 つに、ク

ライアントがサービスへのアクセス時に使用する URL があります。 URL は、いくつか

の部分から構成されています。

たとえば、この Web サービスをローカル Novell exteNd Application Server に配備す

ると、URL は次のようになります。

http://localhost:80/ProverbsCloud/Calculator/CalculatorImpl

エクササイズ 2-6: Web Service ウィザードを実行する

このエクササイズでは、CalculatorImplをWebサービスに変換するクラスを生成します。

1 Workbench でプロジェクトを開き、メニューから[File]>[New]の順に選択します。

2 [New File]ダイアログボックスで、[Web Services]タブを選択してから、[NewWeb Service]を選択して[OK]をクリックします。

Workbench に、Web Service ウィザードのプロジェクトの場所を指定するパネルが

表示されます。

部分 説明 例

サーバ ポート番号を含むサーバの URL ( デフォルト

のポート 80 でない場合 )、およびサーバ固有

のデータ

ヒント : Novell exteNd Application Serverでは、WAR を配備したデータベースを含む

http://localhost/ProverbsCloud/

http://www.mydomain.com:8080/

Web アプリケー

ション

WAR の URL

ヒント : Novell exteNd Application Serverでは、配備計画で指定する相対 URL

Calculator/

サーブレットマッ

ピング

サーブレットの URL であり、配備記述子の

[Servlet Mapping]セクションで割り当てられ

た URL パターン

CalculatorImpl

チュートリアル : Web サービスの操作 -37

Web サービスの作成 37

Page 42: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3 このパネルでデフォルトを受け入れるか (次を参照 )、[Next]をクリックできます。

4 クラス選択パネルが表示されたら、[class calc.CalculatorImpl]を選択して、[Next]をクリックします。

注記 : デフォルトでは、ウィザードにより、プロジェクトのコンパイル済みクラスが表示

されます。 オプションで、( アーカイブなど ) 他の場所に保存されたクラスのリストを表

示し、リストをフィルタ処理して特定の種類のクラスのみを表示することができます。

38 チュートリアル : Web サービスの操作

Page 43: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

5 メソッド選択パネルが表示されたら、[Add All]をクリックして 4 つの Calculatorメソッドをすべて使用します。 [Next]をクリックします。

クラス生成および SOAP オプションパネルが表示されます。

6 [Service address]テキストボックスで、クライアントがサービスへのアクセス時

に使用する URL を指定します。

URL は、配備サーバに応じて異なります (37 ページの「Web サービスの URL に

ついて」を参照 )。 たとえば、www.mydomain.comでNovell exteNd Application Serverの ProverbsCloud データベースに配備したアプリケーションの URL は、次のとお

りです。

http://www.mydomain.com/ProverbsCloud/Calculator/CalculatorImpl

チュートリアル : Web サービスの操作 -39

Web サービスの作成 39

Page 44: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

7 [Finish]をクリックします。

ウィザードの結果

ウィザードを実行すると、プロジェクトの calc ディレクトリに複数のファイルが追加

されます。 これらのファイルは、ウィザードによりプロジェクトディレクトリに追加

されるため、自動的にプロジェクトの一部になります。

ウィザードですべての生成オプションをオンにすると、次のファイルがプロジェクト

に含まれます。 Java ファイルは、calc パッケージディレクトリ内にあります。

ファイル 説明 使用場所

CalculatorImplWS.java ソースオブジェクトのメソッドに

対して宣言を持つリモートインタ

フェース。 java.rmi.Remote を拡張

し ま す。各 メ ソ ッ ド は、

RemoteExceptionをスローします。

Web サービスおよ

びクライアントプ

ログラム

CalculatorImplWS_ServiceSkeleton.java

サーバで SOAP メッセージを処理

する jBroker Webクラス。 このクラ

スを変更する必要はありません。

Web サービス

CalculatorImplWS_ServiceTieSkeleton.java

Web サービスのメソッドを実装

するオブジェクトを特定するた

めに、setTarget() メソッドで

ServiceSkeleton を拡張する

jBroker Web クラス。 このクラス

を変更する必要はありません。

Web サービス

40 チュートリアル : Web サービスの操作

Page 45: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

「Delegator クラス」の CalculatorImplWSDelegate および CalculatorImplWSTie は、連係

してソースオブジェクトを SOAP 処理オブジェクトにバインドします。 Web サービス

を生成するために、編集を行う必要はありません。

CalculatorImplWSTie.java TieSkeleton を拡張し、結合クラ

スのターゲットを

CalculatorImplWSDelegate に設

定する Delegator クラス。

Web サービス

CalculatorImplWSDelegate.java

リモートインタフェースを実装

し、ソースオブジェクトのメソッ

ドを呼び出す Delegator クラス。

ソースオブジェクトのすべての

コンストラクタを実装します。

Web サービス

CalculatorImplWSService.java

Web サービスのスタブを取得す

るために JAX-RPC クライアント

によって使用されるサービスイ

ンタフェース。 このクラスを変更

する必要はありません。

クライアントプロ

グラム

CalculatorImplWSServiceImpl.java

スタブ (CalculatorImplWS_Stub)のインスタンス化を処理する

サービス実装クラス。 このクラス

を変更する必要はありません。

クライアントプロ

グラム

CalculatorImplWS_Stub.java クライアントでSOAPメッセージ

を処理する jBroker Web クラス。

このクラスを変更する必要はあ

りません。

クライアントプロ

グラム

CalculatorImplWSClient.java Web サービスをテストするため

のスタンドアロン Java プログラ

ム。 コードの編集後、配備した

Web サービスが動作するか検証

するために使用します。 サンプル

コードは、クライアントアプリ

ケーションでのコードのモデル

です。

テストのみ

CalculatorImplWS.wsdl レジストリで公開するために

Web サービスを XML で記述した

もの。

このファイルは、calc パッケージ

ディレクトリではなく、プロジェ

クトの src ディレクトリに保存さ

れます。

レジストリ

ファイル 説明 使用場所

チュートリアル : Web サービスの操作 -41

Web サービスの作成 41

Page 46: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

「バインド」は、Web サービスにアクセスするための URL であり、スタブでのコード

の一部です。 スタブをインスタンス化するクライアントコードで、この URL を上書き

できます。

注記 : ウィザードをもう一度実行すると、これらのファイルはすべて再生成されます。 そのため、

コードを変更しなければならない場合は、生成されたコードを編集する代わりに、Delegator ク

ラスを拡張するクラスを定義することをお勧めします。

ビジネス論理が記述されていない場合 実装の代わりにインタフェースでこのプロセス

を開始した場合、つまり、CalculatorImpl.java ファイルが存在せず CalculatorImplWS.javaファイルのみがある場合は、この時点でビジネス論理を記述する必要があります。

CalculatorImplWSTie または CalculatorImplWS_ServiceTieSkeleton を拡張して、そこでビ

ジネス論理を実装するか、別のクラスを記述して、CalculatorImplWSTie のターゲット

がこのクラスを参照するよう設定できます。

配備の準備Workbench では、任意の J2EE アプリケーションサーバのアーカイブを作成して、配備

できます。 ここでの手順では、このチュートリアルアプリケーションを配備する場合

に必要な情報について示します。 詳細およびサーバ固有の情報については、

「Workbench の配備手順」を参照してください ( 独自のサーバツールを使用して配備す

ることもできます )。

Web サービスを配備するには、次の手順を実行します。

1 アーカイブを作成する。

2 ウィザードにより配備記述子に挿入されたサーブレット情報を確認する。

3 サーバプロファイルを作成する(Workbenchでサーバに他のアプリケーションを配

備した場合は、すでに作成済み )。

4 ランタイム配備情報でサーバ固有のファイルを作成する。

5 Workbench 配備設定を指定する。

6 サーバに配備する。

配備記述子について

プロジェクトを作成した際に、Workbench で、選択したアーカイブのタイプに適する

XML 記述子ファイルが作成されました。 WAR では、このファイルは web.xml と呼ば

れます。

42 チュートリアル : Web サービスの操作

Page 47: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

web.xml を編集用に開くと、配備記述子エディタにより、XML 要素が展開可能なツ

リー構造で表示されます。 また、加工されていない XML を表示することもできます。

エディタでは、プロジェクトのコンパイル済みコードを使用して、表示する内容を決

定します。アーカイブを最初に作成するのはこのためです。 アーカイブをまだ作成し

ていない場合は、Workbench によるアーカイブの作成が提示されます。

エクササイズ 2-7: アーカイブを作成する

このエクササイズでは、生成された WSDL ファイルをアーカイブのルートに含め、

アーカイブを作成します。レッスン 5、「テスト方法」では、WSDL ファイルを含める

理由について説明します。

1 メニューから[Project]>[Add to Project]>[File]の順に選択します。

2 [Add to Project]ダイアログボックスで、プロジェクトルート下で src ディレクト

リを検索し、[CalculatorImplWS.wsdl]を選択してから[Open]をクリックします。

3 2 番目の[Add to Project]ダイアログボックスで、[Add the file to the root of thearchive]をオンにして[OK]をクリックします。

4 Workbench で、メニューから[Project]>[Build and Archive]の順に選択して、

プロジェクトに対して配備可能なアーカイブを作成します。

エクササイズ 2-8: 配備記述子を検査する

ウィザードは、Web サービスのメインサーブレットに関する情報を配備記述子に挿入

します。 このエクササイズでは、その情報を確認して、今後必要が生じた場合にその

情報を検索したり、変更したりできるようにします。

1 ナビゲーションペインで、プロジェクトファイルCalculator.spfを右クリックして、

ポップアップメニューから[Open Deployment Descriptor]を選択します。

注記 : ソースビューまたはアーカイブビューで web.xml を検索し、ダブルクリックして開

くこともできます。

Workbench で[Select Build Option]ダイアログボックスが表示された場合、デ

フォルトを受け入れて[OK]をクリックします。

Workbench により、編集ペインで web.xml が開きます。 エディタには、[Descriptor]タブが表示され、記述子に含めることができる情報のタイプが示されます。

チュートリアル : Web サービスの操作 -43

Web サービスの作成 43

Page 48: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

2 [Servlets]見出しの[CalculatorImpl]項目は、ウィザードにより追加されています。

3 [CalculatorImpl]を右クリックして、ポップアップメニューから[Properties]を

選択します。

プロパティシートに、サーブレットの配備プロパティが表示されます。

4 [Servlet class]の値は、[calc.CalculatorImplWSTie]になっています。 これは、

Web サービスの呼び出し時に実行するクラスです。

5 再び編集ペインで、[Servlet Mapping]セクションで[CalculatorImpl]項目を検

索して選択します。

44 チュートリアル : Web サービスの操作

Page 49: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

今度はプロパティシートに、マッピングプロパティが表示されます。

6 [URL pattern]の値は、サーブレットの名前と同様に「CalculatorImpl」です。 この値は、Web サービスにアクセスする URL で使用します。

7 エディタの右上隅にあるボタンをクリックするか、メニューから[File]>[Close]の順に選択して、配備記述子を閉じます。

プロジェクトの配備

別の Workbench チュートリアルを完了している場合、ほとんどの配備設定はすでに完

了しています。 このエクササイズでは、主な手順について説明し、このプロジェクト

を配備する場合に必要なプロジェクト固有の情報を提供します。 すべてのサポートさ

れたサーバに対する配備手順の詳細については、「Workbench の配備手順」を参照して

ください。

エクササイズ 2-9: プロジェクトを配備する

1 サーバのプロファイルを作成していない場合は、この時点でメニューから[Edit]>[Profiles]の順に選択して作成します。

詳細については、配備手順で「サーバプロファイルの手順」を参照してく

ださい。

2 次の情報を使用して、配備プロセスのサーバ固有の部分を作成します。

大部分の J2EE サーバでは、サーバ固有の配備情報は、通常 XML 形式で別のファ

イル内に保存されています。 一部のサーバでは、配備情報をプロジェクトに追加

して、配備情報がアーカイブ内に組み込まれるようにする必要があります。

チュートリアル : Web サービスの操作 -45

Web サービスの作成 45

Page 50: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

詳細情報および詳細な手順を示したエクササイズについては、配備手順で

ご使用のサーバの節を参照してください。

3 メニューから[Project]>[Deployment Settings]の順に選択して、サーバの配備

設定を指定します。

サーバ 操作 指定する内容

Novell exteNd Application Server( または

SilverStream eXtend Application Server)

配備計画を作成

します。 配備計画

エディタで、WebArchive 項目に対

してプロパティ

シートで値を設

定します。

[Enabled] - True

[Deployed object name] - Calculator

[Server Profile] - ドロップダウンリスト

ボックスから定義したプロファイルを選択

します。

[Session timeout] - 5 分 ( デフォルト )

[URLs] - Calculator ( デフォルト )

Sun Reference Implementation

右のコンテンツ

で、s u n - j 2 e e -ri.xml というラン

タイム配備記述

子を作成します。

これを META-INFディレクトリに

配置し、ファイル

をプロジェクト

に追加します。

<?xml version="1.0" encoding="Cp1252"?>

<j2ee-ri-specific-information> <server-name></server-name> <rolemapping /> <web> <display-name>Calculator</display-name> <context-root>Calculator</context-root>

</web></j2ee-ri-specific-information>

Jakarta Tomcat - -

BEA WebLogic 右のコンテンツ

で、weblogic.xmlという WebLogic記述子を作成しま

す。 WEB-INFディ

レクトリで、これ

をプロジェクトに

追加します。

<!DOCTYPE weblogic-web-app PUBLIC "-//BEASystems, Inc.//DTD Web Application 6.0//EN""http://www.bea.com/servers/wls610/dtd/weblogic-web-jar.dtd">

<weblogic-web-app><description>

Calculator Web Service</description><weblogic-version></weblogic-version>

</weblogic-web-app>

IBM WebSphere - -

Oracle 9iAS - -

46 チュートリアル : Web サービスの操作

Page 51: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

[Server Profiles]タブで、前で定義したサーバプロファイルを選択します。 セキュ

リティ保護されたサーバを使用している場合は、[User name]および[Password]の値を指定します。

[Deployment Info]タブで、追加のアプリケーション固有の情報を次のように指

定します。

注記 : このチュートリアルでは、[Enable Rapid Deployment]チェックボックスはオン

にしないようにしてください。 サーバでの高速配備の使用法の詳細については、『ツールガ

イド』の「アーカイブ配備」を参照してください。

詳細については、配備手順でご使用のサーバの節を参照してください。

4 [Deployment Settings]ダイアログボックスで[Deploy]をクリックします。

または

[Deployment Settings]で[OK]をクリックし、メニューから[Project]>[DeployArchive]の順に選択します。

Workbench で、[Output]ペインの[Deploy]タブに進行状況を知らせるメッセージ、

エラー、および警告が表示されます。

ヒント : 大部分のサーバタイプでは、サーバが実行されていない場合、完全配備は失敗

します。 一部のサーバでは、配備後サーバを再起動する必要があります。 詳細については、

配備手順でご使用のサーバの節を参照してください。

サーバ オプションおよび値

Novell exteNd Application Server(またはSilverStream eXtend Application Server)

[Deployment Plan] - 手順 2 で定義した計画を選択します。

[Overwrite existing deployment] - オン

[Verbosity] - 3

[Ignore JSP compile errors] - オフ ( 配備時に JSP ページが正

常にコンパイルされない場合、アーカイブを配備しない )

Sun Reference Implementation

-

Jakarta Tomcat -

BEA WebLogic [WebLogic Application Name] - Calculator。Web アプリケー

ションにアクセスするための URL で使用します。

IBM WebSphere [Node Name] - 空白のまま残すか、サーバでセットアップした

ノードを指定します。

Oracle9iAS [Deployment Name] - Calculator。Web アプリケーションにア

クセスするための URL で使用します。

[Target Path] - 空白のまま残すか、サーバでセットアップした

パスを指定します。

[Website Name] - デフォルト値を受け入れるか、サーバでセッ

トアップした名前を指定します。

チュートリアル : Web サービスの操作 -47

Web サービスの作成 47

Page 52: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

J2EE サーバのクラスパスの更新Web サービスを実行する前に、実行しなければならない作業がもう一つあります。配

備した WAR が、jBroker Web で必要な次のアーカイブにランタイムでアクセスできる

ことを確認する必要があります。

jBroker WebAPI クラスを含む jbroker-web.jar

XMLベースのRPCおよびSOAP処理のためのJava APIクラスを含むjaxrpc-api.jarおよび saaj-api.jar

xerces.jar または別の XML パーサ

このアクセスの設定方法は、使用する J2EE サーバのタイプに応じて異なります。

次のいずれかのサーバに配備した場合、必要な JAR をサーバのクラスパスに追加する

必要があります ( クラスパスへの追加の詳細については、ご使用のサーバのマニュア

ルを参照してください )。

BEA WebLogic

IBM WebSphere

Jakarta Tomcat

Oracle9i

Novell exteNd Application Server に配備した場合は、サーバのクラスパスに JAR を追加

する必要はありません ( このサーバでは、JAR が WAR の WEB-INF/lib ディレクトリ

内にあるだけで十分です )。

Web サービスのテストWeb Service ウィザードは、Web サービスをテストする目的で Java クラスを生成しま

す。 テンプレートコードに変更を加えた後、プログラムを実行して、処理される内容

を確認できます。

エクササイズ 2-10: テストクライアントコードを編集する

1 ナビゲーションペインで、CalculatorImplWSClient.java を検索し、ダブルクリッ

クしてエディタ内に開きます。 これは、ソースレイアウトでは src/calc ディレクト

リ下、アーカイブレイアウトではWEB-INF/classes/calcディレクトリ下にあります。

2 process() メソッド内で、4 つのコメント付きの System.out.println() ステートメント

を次のコードで置き換えます。 getRemote() への呼び出しは削除しないでください。

この新しいコードは、コマンドラインから引数を取得して ( またはデフォルト値

を使用して )、CalculatorImpl メソッドを呼び出します。

double x, y;if (args.length == 2){

48 チュートリアル : Web サービスの操作

Page 53: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

x = new Double(args[0]).doubleValue();y = new Double(args[1]).doubleValue();

}else {

x = 4.0;y = 5.0;

}System.out.println("Add = " + remote.add(x, y));System.out.println("Divide = " + remote.divide(x, y));System.out.println("Multiply = " + remote.multiply(x, y));System.out.println("Subtract = " + remote.subtract(x, y));

3 メニューから[Project]>[Compile]の順に選択し、ファイルを保存してコンパ

イルします。

4 ファイルを閉じます。

エクササイズ 2-11: 生成したクライアントを使用して Web サービスをテストする

1 メニューから[Project]>[Run Web Service Client Class]の順に選択します。

[Web Service Wizard Client Runner]ウィンドウの選択リストに、テストクライア

ントクラスが表示されます。 プロジェクトに main() メソッドを使用した他のコン

パイル済みクラスが含まれる場合、それらのクラスも表示されます。

2 [Arguments]テキストボックスに、Calculator の算術演算に対する入力となる 2 つ

の数値を入力します。 たとえば、次のように入力します。

4.0 5.5

3 [Run]をクリックします。

System.out.println() メソッドからの出力が、出力ボックスに表示されます。

4 完了したら、[Close]をクリックします。

以上で作業は完了です。 Web サービスを正しく配備してテストしました。

チュートリアル : Web サービスの操作 -49

Web サービスの作成 49

Page 54: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

実行した内容のまとめ

アプリケーションの開発 このレッスンでは、基本的な算術に対して複数のメソッドを

提供する Web サービスの WAR を作成して配備しました。 生成したクライアントプロ

グラムのコードを編集し、クライアントを実行して Web サービスをテストしました。

Workbench ツールの使用 Workbench で、次のツールを使用しました。

New Project ウィザード ([File]>[New Project]の順に選択 )

[Add to Project]メニュー項目 ([Project]>[Add to Project]の順に選択 )

[Project Settings]ダイアログボックス ([Project]>[Project Settings]の順に選択 )

Web Service ウィザード ([File]>[New]、[Web Services]タブの順に選択 )

配備ツール ( プロジェクトポップアップメニューで[Open Deployment Descriptor]を選択し、[Edit]>[Profiles]、[Project]>[Deployment Settings]、[Project]>[Deploy Archive]の順に選択 )

[Web Service Wizard Client Runner]ウィンドウ ([Project]>[Run Web Service ClientClass]の順に選択 )

次のレッスン 次のレッスンでは、Web サービスを記述する WSDL ファイルから、ク

ライアントコードを生成する方法について学習します。

50 チュートリアル : Web サービスの操作

Page 55: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3

Web サービスのクライアントアプリケーションの

作成 ÉåÉbÉXÉì 3

学習する内容Web サービスを操作する場合には、次の 2 つの基本的な役割があります。

サービスを記述し、配備するサービス「プロバイダ」

サービスにより提供されたメソッドを呼び出すクライアントアプリケーションを記述するサービス「コンシューマ」

レッスン 2、「Web サービスの作成」では、プロバイダとしての役割で、Calculator Webサービスを配備しました。 このレッスンでは、サービスコンシューマとしての役割で、

Web Service ウィザードを使用して Calculator Web サービスを呼び出すコードを生成し

ます。

このレッスンでは、レッスン 2、「Web サービスの作成」で開始点として生成された

WSDL を使用します。 必要なコードの大部分は、そのレッスンですでに生成されていま

すが、このレッスンでは Web サービスのソースコードがなく、WSDL (Web ServicesDescription Language) 形式の記述子ファイルのみがあるという前提で解説していきます。

学習内容は次のとおりです。

Web サービスについての情報の取得

プロジェクトのセットアップ

WSDL からのクライアントコードの生成

実行する内容

1 プロジェクトディレクトリをセットアップし、WSDL ファイルを取得する

2 新しいプロジェクトを作成する

3 プロジェクト作成用のクラスパスを設定する

4 WSDL からクライアントコードを生成する

51Web サービスのクライアントアプリケーションの作成

Page 56: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

5 テストクライアントコードを編集する

6 生成したクライアントを使用して Web サービスをテストする

所要時間 約 15 分

注記 : このレッスンでは、レッスン 2、「Web サービスの作成」を完了し、Calculator Webサービスを配備したと想定しています。 このプロジェクトをテストする際には、Calculator Webサービスの配備先となる J2EE アプリケーションサーバが実行されている必要があります。

Web サービスについての情報の取得WSDL (Web Services Description Language) は、配備した Web サービスについての情報

を交換する標準的な方法です。 WSDL ファイルは、Web サービスのメソッド、データ

タイプ、および URL を指定する XML ドキュメントです。 これにより、抽象的で再使

用可能な方法でサービスを記述できます。

WSDL ファイルを取得するには、次のようないくつかのシナリオがあります。

Web ページ、電子メールからなど、使用するサービスを配備しているベンダからWSDL ファイルを直接取得する。

ビジネスパートナーと共同でサービスの WSDL 仕様を定義する。

Registry Managerを使用して、パブリックレジストリからWSDLファイルをダウンロードする。

Web サービスの WSDL ファイルを取得すると、Workbench の Web Service ウィザード

を使用して、サービスを呼び出すクライアントコードを生成できます。 生成したファ

イルには、テスト用のリモートインタフェース、サービスクラス、スタブ、およびク

ライアントプログラムが含まれます。

Calculator Web サービス このレッスンでは、別の開発者またはビジネスから

Calculator Web サービスの WSDL ファイルを取得したと想定します。 実際には、この

ファイルはレッスン 2、「Web サービスの作成」で生成しています。

プロジェクトのセットアップ作成するクライアントプログラムは、単純な Java プログラムであり、アーカイブに保

存された J2EE アプリケーションではありません。 Workbench では、アーカイブタイプ

を選択する必要があるため、JAR プロジェクトを選択します。 アプリケーションを実

行すると、コマンドラインまたは[Client Runner]ウィンドウのいずれかを使用でき

ます。 アーカイブを作成して配備する必要はなく、単にファイルをコンパイルします。

52 チュートリアル : Web サービスの操作

Page 57: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

エクササイズ 3-1: プロジェクトディレクトリをセットアップし、WSDL ファイルを取得する

1 ご使用のオペレーティングシステムのツールを使用して、CalculatorClient という

プロジェクトのルートディレクトリを作成します。 ディスクドライブのルートレ

ベル、または選択したサブディレクトリに配置できます。 このチュートリアルの

サンプルパスでは、WorkbenchProjects ディレクトリに CalculatorClient を作成した

ことを想定しています。 Windows では、次のようになります。

c:\WorkbenchProjects\CalculatorClient

2 CalculatorClientディレクトリにファイルCalculatorImplWS.wsdlをコピーします。

このファイルは、c:\WorkbenchProjects\CalculatorWS\src などのように、レッス

ン 2、「Web サービスの作成」でのプロジェクトの src ディレクトリにあります。

注記 : また、Workbench-install-directory\docs\tutorial\TutorialFiles\webservices からもこの

ファイルを取得できます。 その場合、ファイルを開き、ファイルの最後の soap:address 要

素で URL を編集し、Calculator Web サービスの配備先となる URL を指定することが大切

です。

エクササイズ 3-2: 新しいプロジェクトを作成する

このエクササイズでは、Workbench を起動し New Project ウィザードを使用して、

Calculator Web サービスを使用するクライアントアプリケーションのプロジェクトを

作成します。

1 Workbench を開始します。 Windows の[スタート]メニューから Novell exteNdWorkbench のショートカットを使用できます。

または

Workbench がすでに実行されており、プロジェクトが開いている場合は、メニュー

から[File]>[Close Project]の順に選択します。 開いているファイルを閉じる

よう求められた場合、[Yes]をクリックします。

2 メニューから[File]>[New Project]の順に選択します。

3 New Project ウィザードで、[JAR]を選択してから[OK]をクリックします。

チュートリアル : Web サービスの操作 -53

Web サービスのクライアントアプリケーションの作成 53

Page 58: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

4 次のパネルの[Project Name]テキストボックスに、「CalculatorClient」と入力し

ます。

5 [Project Location]テキストボックス横の省略記号をクリックして、エクササイズ

3-1: 「プロジェクトディレクトリをセットアップし、WSDL ファイルを取得する」

で作成した CalculatorClient ディレクトリを選択します。 [OK]をクリックする

と、パネルの残りのフィールドが自動的に記入されます。

6 [Next]をクリックし、最初のパネルでプロジェクト仕様をチェックしてから、

[Finish]をクリックします。

ナビゲーションペインで、[Project]タブに新しいプロジェクトが表示されます。

エクササイズ 3-3: プロジェクト作成用のクラスパスを設定する

このエクササイズでは、[Project Settings]ダイアログボックスを使用してコンパイル

時のクラスパスを指定します。 Web サービスおよび Web サービスクライアントでは、

クラスパスに jbroker-web.jarおよびいくつかのサポート JARを含める必要があります。

1 プロジェクトを開き、メニューから[Project]>[Project Settings]の順に選択し

ます。

2 [Classpath/Dependencies]タブを選択します。

3 [Add Entry]ボタンをクリックします。

54 チュートリアル : Web サービスの操作

Page 59: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

4 [Add to Classpath]ダイアログボックスで、Workbench-install-directory/compilelibディレクトリに移動します。 次のファイルを選択して、[Open]、[OK]の順にク

リックします。

jaxrpc-api.jar

jbroker-web.jar

saaj-api.jar

xerces.jar

これで、[Classpath/Dependencies]タブは、次のようになります。

5 [OK]をクリックして、[Project Settings]ダイアログボックスを閉じます。

WSDL からのクライアントコードの生成レッスン 2、「Web サービスの作成」では、Java クラスで開始して、新しい Web サー

ビスを作成しました。 ここでは、既存の Web サービスを表す WSDL ファイルで開始し

ます。

エクササイズ 3-4: WSDL からクライアントコードを生成する

1 Workbench でプロジェクトを開き、メニューから[File]>[New]の順に選択します。

チュートリアル : Web サービスの操作 -55

Web サービスのクライアントアプリケーションの作成 55

Page 60: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

2 [New File]ダイアログボックスで、[Web Services]タブをクリックしてから、

[Existing Web Service]を選択して[OK]をクリックします。

Workbench に、Web Service ウィザードのプロジェクトの場所を指定するパネルが

表示されます。

3 パネルに次のように入力します。 指定が必要な値は、[Package]の calc のみです。

[Next]をクリックすると、Workbench に Web Service ウィザードの WSDL ファイ

ル選択パネルが表示されます。 プロジェクトルートディレクトリに保存したファ

イル CalculatorImplWS.wsdl が、[WSDL Files in Project]リストボックスに表示さ

れます。

56 チュートリアル : Web サービスの操作

Page 61: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

4 CalculatorImplWS.wsdl を選択して、[WSDL file or URL to use]ボックスに表示

します。 [Next]をクリックします。

クラス生成および SOAP オプションパネルが表示されます。

5 このパネルの設定を確認します ( 変更する必要はありません )。

6 [Finish]をクリックします。

チュートリアル : Web サービスの操作 -57

Web サービスのクライアントアプリケーションの作成 57

Page 62: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

ウィザードの結果

ウィザードを実行すると、新しいディレクトリ src がプロジェクトに追加されます。 その下の calc パッケージディレクトリには、いくつかの新しいファイルが含まれます。

[Generate stubs]オプションでは、クライアントアプリケーションで使用する次のファ

イルが生成されます。

クライアントアプリケーションの編集およびテスト

スタブをインスタンス化するコード 生成されたクライアントコードは、(JNDI を介し

て取得される ) サービスオブジェクトのメソッドを呼び出し、スタブを取得します。

コードは、次のようになります。

public CalculatorImplWS getRemote(String[] args) throws Exception{ InitialContext ctx = new InitialContext(); String lookup = "xmlrpc:soap:calc.CalculatorImplWSService"; CalculatorImplWSService service = (CalculatorImplWSService)ctx.lookup(lookup); CalculatorImplWS remote = (CalculatorImplWS)service.getCalculatorImplWSPort();

ファイル 説明

CalculatorImplWS.java WSDL ファイルで指定されたメソッドに対して宣言を

持つリモートインタフェース。 java.rmi.Remote を拡張

します。各メソッドは、RemoteException をスローし

ます。

CalculatorImplWSService.java

Web サービスのスタブを取得するために JAX-RPC クラ

イアントによって使用されるサービスインタフェース。

このクラスを変更する必要はありません。

CalculatorImplWSServiceImpl.java

スタブ (CalculatorImplWSBinding_Stub) のインスタンス

化を処理するサービス実装クラス。 このクラスを変更す

る必要はありません。

CalculatorImplWSBinding_Stub.java

クライアントで SOAP メッセージを処理する jBrokerWeb クラス。 このクラスを変更する必要はありません。

CalculatorImplWSClient.java Web サービスにアクセスするためのスタンドアロン

Java プログラム。 コードの編集後、Web サービスのメ

ソッドを呼び出すために使用します。

DivideFault.java このプロジェクトのリモートインタフェースで divide()メソッドによってスローされた例外クラス。 このファイ

ルは、このプロジェクトに固有です。

DivideFaultMarshaler.java DivideFault データタイプを SOAP メッセージで送信す

る必要が生じた際に、これを直列化および非直列化する

Marshaler。 このファイルは、このプロジェクトに固有

です。

58 チュートリアル : Web サービスの操作

Page 63: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

return remote;}

バインドについて レッスン 2、「Web サービスの作成」で Calculator Web サービスを作

成した際には、Web サービスを配備しようとしている場所に従って、バインド (Webサービスの URL) を指定しました。 Calculator クライアントでは、ウィザードは、WSDLからそのバインドを取得し、生成したスタブ内に含めます。

URL を変更した場合、次のようにスタブでバインドを上書きできます。

public CalculatorImplWS getRemote(String[] args) throws Exception{ InitialContext ctx = new InitialContext(); String lookup = "xmlrpc:soap:calc.CalculatorImplWSService"; CalculatorImplWSService service = (CalculatorImplWSService)ctx.lookup(lookup); CalculatorImplWS remote = (CalculatorImplWS)service.getCalculatorImplWSPort();

((javax.xml.rpc.Stub)remote)._setProperty("javax.xml.rpc.service.endpoint.address", "http://www.myserver.com:80/Calculator/CalculatorImpl");

return remote;}

ここでは、元のバインドを使用します。 テストクライアントを実行する前に必要な作

業は、Web サービスへの呼び出しを編集することです。 次に説明する手順は、レッス

ン 2、「Web サービスの作成」で Web サービスをテストした際に使用した手順と同じ

です。

エクササイズ 3-5: テストクライアントコードを編集する

このエクササイズでは、レッスン 2、「Web サービスの作成」で Web サービスをテス

トする場合と同じクライアントテストコードを使用します。

1 ナビゲーションペインで、CalculatorImplWSClient.java を検索し、ダブルクリッ

クして編集ペイン内に開きます。 これは、ソースレイアウトでは、src/calc ディレ

クトリにあります。

2 process() メソッド内で、4 つのコメント付きの System.out.println() ステートメント

を次のコードで置き換えます。 getRemote() への呼び出しは削除しないでください。

この新しいコードは、コマンドラインから引数を取得して ( またはデフォルト値

を使用して )、4 つの Calculator メソッドを呼び出します。

double x, y;if (args.length == 2){ x = new Double(args[0]).doubleValue(); y = new Double(args[1]).doubleValue();}else

チュートリアル : Web サービスの操作 -59

Web サービスのクライアントアプリケーションの作成 59

Page 64: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

{ x = 4.0; y = 5.0;}System.out.println("Add = " + remote.add(x, y));System.out.println("Divide = " + remote.divide(x, y));System.out.println("Multiply = " + remote.multiply(x, y));System.out.println("Subtract = " + remote.subtract(x, y));

3 ファイルを保存します。

4 メニューから[Project]>[Build]の順に選択します。

[Output]ペインの[Build]タブで、正常な作成が報告されます。

エクササイズ 3-6: 生成したクライアントを使用して Web サービスをテストする

1 メニューから[Project]>[Run Web Service Client Class]の順に選択します。

[Web Service Wizard Client Runner]ウィンドウの選択リストに、テストクライア

ントクラスが表示されます。 プロジェクトに main() メソッドを使用した他のコン

パイル済みクラスが含まれる場合、それらのクラスも表示されます。

2 [Arguments]テキストボックスで、次のような 2 つの数値を入力します。

4.0 5.5

3 [Run]をクリックします。

System.out.println() メソッドからの出力が、出力ボックスに表示されます。

60 チュートリアル : Web サービスの操作

Page 65: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

4 完了したら、[Close]をクリックします。

以上で作業は完了です。 公開可能な Calculator Web サービスを正常に呼び出しました。

実行した内容のまとめ

アプリケーションの開発 このレッスンでは、Web サービス記述 (WSDL) ファイルを使

用して、Web サービスにアクセスするコードを生成しました。

Workbench ツールの使用 Workbench で、次のツールを使用しました。

New Project ウィザード ([File]>[New Project]の順に選択 )

[Project Settings]ダイアログボックス ([Project]>[Project Settings]の順に選択 )

Web Service ウィザード ([File]>[New]、[Web Services]タブの順に選択 )

[Web Service Wizard Client Runner]ウィンドウ ([Project]>[Run Web Service ClientClass]の順に選択 )

次のレッスン 次のレッスンでは、Calculator Web サービスのクライアントとして Webアプリケーションを作成する方法について学習します。

チュートリアル : Web サービスの操作 -61

Web サービスのクライアントアプリケーションの作成 61

Page 66: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

62 チュートリアル : Web サービスの操作

Page 67: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

4

J2EE Web アプリケーションでの Web サービス

の使用 ÉåÉbÉXÉì 4

学習する内容このレッスンでは、Web サービスのクライアントである J2EE Web アプリケーション

を作成する方法について説明します。 Web アプリケーションは、単一の JSP ページで

あり、 そのページの JavaBean には、リモートオブジェクトをインスタンス化し、レッ

スン 2、「Web サービスの作成」から Calculator Web サービスを呼び出すメソッドがあ

ります。

学習する内容

Web サービスクライアントアプリケーションの WAR プロジェクトの定義

プロジェクトへの Web サービスクライアントコードの追加

Calculator Web サービスを呼び出すフォームの作成

WAR の配備およびテスト

実行する内容

1 新しいプロジェクトを作成する

2 jBroker Web ライブラリをプロジェクトに追加する

3 Calculator Web サービスのクライアントコードを生成する

4 新しい JSP ページを作成する

5 JSP ページを編集する

6 magicnumber.jsp に含める 2 番目の JSP ページを作成する

7 JavaBean を作成してフォームを処理する

8 アーカイブを作成する

9 配備記述子を編集する

63J2EE Web アプリケーションでの Web サービスの使用

Page 68: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

10 プロジェクトを配備する

11 Calculator クライアントアプリケーションをテストする

所要時間 約 20 分

注記 : このレッスンで作成する WAR を配備するには、J2EE アプリケーションサーバを実行す

る必要があります。 レッスン 2、「Web サービスの作成」で配備する Web サービスも実行されて

いる必要があります。

Web サービスクライアントアプリケーションの WAR プロジェクトの定義

この節では、Calculator Web サービスを呼び出すページを持つ Web アプリケーション

の WAR プロジェクトを作成します。

前のレッスンでは、Workbench でプロジェクトディレクトリを作成してから、プロジェ

クトを定義しました。 このレッスンでは、Workbench によりプロジェクトルートディ

レクトリが作成されるようにします。

エクササイズ 4-1: 新しいプロジェクトを作成する

このエクササイズでは、Workbench を開始し New Project ウィザードを使用して、Webアプリケーションのプロジェクトを作成します。

1 Workbench を開始します。 Windows の[スタート]メニューから Novell exteNdWorkbench のショートカットを使用できます。

または

Workbench がすでに実行されており、プロジェクトが開いている場合は、メニュー

から[File]>[Close Project]の順に選択します。 開いているファイルを閉じる

よう求められた場合、[Yes]をクリックします。

2 メニューから[File]>[New Project]の順に選択します。

64 チュートリアル : Web サービスの操作

Page 69: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3 New Project ウィザードで、[WAR]を選択してから[OK]をクリックします。

4 [Project Name]フィールドに、「CalcWARClient」と入力します。

5 [Project Location]テキストボックスで、CalcWARClient というプロジェクトルー

トディレクトリのフルパスを指定します。

「c:\WorkbenchProjects\CalcWARClient」のように入力するか、省略記号をクリッ

クして、[Choose Directory]ダイアログボックスでペアレントディレクトリを選

択してから、 [Project Location]テキストボックスで、選択したディレクトリの後

に新しいディレクトリ名を入力できます。

入力すると、ダイアログボックスの残りのフィールドが自動的に入力されます。

チュートリアル : Web サービスの操作 -65

J2EE Web アプリケーションでの Web サービスの使用 65

Page 70: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

6 [Project J2EE Version]フィールドで、[J2EE 1.2 (WAR 2.2)]を指定して、J2EE 1.2または 1.3 をサポートしている任意のサーバでアプリケーションが実行されるよ

うにします。

7 [Next]をクリックします。

8 ウィザードにより、プロジェクトルートディレクトリおよびWEB-INFディレクトリ

を作成するかどうか尋ねるメッセージが表示されたら、[Yes]をクリックします。

ウィザードにより、プロジェクト情報が要約されます。

9 [Finish]をクリックします。

ナビゲーションペインで、[Project]タブに新しいプロジェクトが表示されます。

エクササイズ 4-2: jBroker Web ライブラリをプロジェクトに追加する

Web サービスクライアントでは、jbroker-web.jar のクラスおよび SOAP メッセージ処

理のサポート JAR を使用します。 このエクササイズでは、これらの JAR をランタイム

時のアクセス用にアーカイブに追加し、コンパイル時のアクセス用にプロジェクトク

ラスパスに追加します。

1 プロジェクトを開き、メニューから[Project]>[Project Settings]の順に選択し

ます。

2 [Contents]タブを選択し、[Add Entry]ボタンをクリックします。

66 チュートリアル : Web サービスの操作

Page 71: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3 [Select Contents]ダイアログボックスで、Workbench-install-directory/compilelibディレクトリに移動した後、次のファイルを選択して[Open]をクリックします。

jaxrpc-api.jar

jbroker-web.jar

saaj-api.jar

xerces.jar

[Add to Project]ダイアログボックスにより、各ファイルの情報を 1 つずつ入力す

るよう求められます。

4 jaxrpc-api.jar の情報を求められた場合、[Add the file to the archive at this location]をオンにします。 テキストボックスに、「WEB-INF/lib/jaxrpc-api.jar」と入力します。

その後、[OK]をクリックします。

5 jbroker-web.jar の情報を求められた場合、[Add the file to the archive at this location]をオンにします。 テキストボックスに、「WEB-INF/lib/jbroker-web.jar」と入力し

ます。 その後、[OK]をクリックします。

6 saaj-api.jar の情報を求められた場合、[Add the file to the archive at this location]をオンにします。 テキストボックスに、「WEB-INF/lib/saaj-api.jar」と入力します。

その後、[OK]をクリックします。

7 xerces.jar の情報を求められた場合、[Add the file to the archive at this location]を

オンにします。 テキストボックスに、「WEB-INF/lib/xerces.jar」と入力します。 その後、[OK]をクリックします。

これで、アーカイブの WEB-INF/lib ディレクトリに、JAR が含まれます。

8 [Classpath/Dependencies]タブを選択し、[Add Entry]ボタンをクリックします。

9 [Add to Classpath]ダイアログボックスで、Workbench-install-directory/compilelibディレクトリをもう一度検索し、次のファイルを選択して[Open]、[OK]の順に

クリックします。

チュートリアル : Web サービスの操作 -67

J2EE Web アプリケーションでの Web サービスの使用 67

Page 72: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

jaxrpc-api.jar

jbroker-web.jar

saaj-api.jar

xerces.jar

[Classpath/Dependencies]タブは、次のようになります。

10[OK]をクリックして、[Project Settings]ダイアログボックスを閉じます。

プロジェクトへの Web サービスクライアントコードの追加Calculator WAR クライアントが Calculator Web サービスにアクセスするためには、次

のような複数のクラスが必要となります。

CalculatorImplWS.java

CalculatorImplWSService.java

CalculatorImplWSServiceImpl.java

CalculatorImplWSBinding_Stub.java

DivideFault.java

DivideFaultMarshaler.java

レッスン 2、「Web サービスの作成」またはレッスン 3、「Web サービスのクライアン

トアプリケーションの作成」のレッスンを実行した場合、クライアントファイルは、

すでにプロジェクトの calc パッケージに存在します。 また、それらのレッスンでは、

各ファイルで処理される内容についても説明しています。 ファイルをこのプロジェク

トにコピーしたり、現在の場所から追加したりすることもできますが、代わりに 27ページからの WSDL ファイルを使用して、クライアントファイルを再生成します。こ

の方法が迅速で簡単であるためです。

68 チュートリアル : Web サービスの操作

Page 73: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

エクササイズ 4-3: Calculator Web サービスのクライアントコードを生成する

このエクササイズでは、Web サービスの WSDL ファイルからクライアントコードを生

成します。 このエクササイズは、レッスン 3、「Web サービスのクライアントアプリ

ケーションの作成」で行った手順を要約したものです。 Web Service ウィザードによる

結果の画像や情報については、そのレッスンを参照してください。

1 ご使用のシステムツールを使用して、ファイル CalculatorImplWS.wsdl をCalcWARClient ディレクトリにコピーします。 このファイルは、

c:\WorkbenchProjects\CalculatorWS\src などのように、レッスン 2、「Web サービ

スの作成」でのプロジェクトの src ディレクトリにあります。

ヒント : レッスン 2、「Web サービスの作成」のレッスンを実行しておらず、他のユーザ

により配備された Calculator Web サービスを使用する場合は、Workbench-install-directory\docs\tutorial\ TutorialFiles\webservices ディレクトリからファイルを取得でき

ます。 このファイルを使用する場合、ファイルを開き、ファイルの最後の soap:address 要

素で URL を編集し、Calculator Web サービスの配備先となる URL を指定することが大切で

す。

2 Workbench で、メニューから[File]>[New]の順に選択します。

3 [New File]ダイアログボックスで、[Web Services]タブをクリックしてから、

[Existing Web Service]を選択して[OK]をクリックします。

Workbench に、Web Service ウィザードのプロジェクトの場所を指定するパネルが

表示されます。

4 パッケージに calc を指定して、[Next]をクリックします。

5 WSDL ファイル選択パネルが表示されたら、[CalculatorImplWS.wsdl]を選択して、

[Next]をクリックします。

クラス生成および SOAP オプションパネルが表示されます。

6 このパネルの設定を確認して ( 変更する必要はありません )、[Finish]をクリック

します。

これで、Calculator Web サービスを呼び出すためのクライアントコードが、プロジェク

トに含まれます。

Calculator Web サービスを呼び出すフォームの作成フォームを使用した JSP ページでは、付随の JavaBean を使用して、フォームフィール

ドでのデータを管理します。 JavaBean のプロパティには、入力した値が保存され、次

回の処理でこの値が Bean でのメソッドに対して使用できるようになります。

チュートリアル : Web サービスの操作 -69

J2EE Web アプリケーションでの Web サービスの使用 69

Page 74: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

このレッスンでの単純なアプリケーションでは、この方法を使用します。 ユーザが、

データを割り当てたフォームを送信すると、関連付けられた JavaBean により、送信さ

れた値が保存されます。 JSP ページを再表示すると、データが送信されたかどうかテス

トします。 データが送信された場合、Calculator Web サービスを呼び出す JavaBean の

メソッドを呼び出します。 アプリケーションが「マジックナンバー」を正常に計算す

ると、2 番目の JSP フラグメントが元のページに含まれ、結果が表示されます。

この節のエクササイズでは、次のファイルを作成します。

エクササイズ 4-4: 新しい JSP ページを作成する

このエクササイズでは、JSP ウィザードを使用して新しいページを作成します。

1 Workbench で、メニューから[File]>[New]の順に選択します。

2 [New File]ダイアログボックスで、[JSP]を選択して[OK]をクリックします。

Workbench により、JSP ウィザードが表示されます。

3 次の情報を使用して、ウィザードの最初のパネルに入力します。

ファイル 説明

magicnumber.jsp 入力フォームを使用したアプリケーションのメインページ

MagicNumberBean.java magicnumber.jsp からのデータを処理する JavaBean

calcnumber.jsp 計算された結果を include ディレクティブによって

magicnumber.jsp に表示する JSP フラグメント

オプション 値

JSP name magicnumber (jsp 拡張子は指定しない )

70 チュートリアル : Web サービスの操作

Page 75: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

これで、最初のパネルは次のようになります。

4 [Next]をクリックします。

5 2 番目のパネルで、[Add to open WAR project]をオンのままにします。

6 プロジェクトおよびアーカイブでのファイルの配置場所を指定します。

[Base directory]では、c:\WorkbenchProjects\CalcWARClient\jsps などのように、

新しい jsps ディレクトリのフルパスを指定します。 ドロップダウンリストか

ら別のプロジェクトディレクトリパスを選択して、編集できます。

[Package]は、空白のまま残します。 このプロジェクトでは、JSP ページは、

アーカイブのルートにあります。

[Add the files to the root of the archive]はオンのままにします。

Page title Magic Number

Content type HTML ( デフォルト )

Template Standard JSP template ( デフォルト )

他のオプション Use session、Thread safe、Form-based page

オプション 値

チュートリアル : Web サービスの操作 -71

J2EE Web アプリケーションでの Web サービスの使用 71

Page 76: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

7 [Finish]をクリックします。

8 [JSP Wizard]ダイアログボックスで、JSP ページの作成が終了したことが報告さ

れたら、[OK]をクリックします。

編集ペインで新しいファイルが開きます。 ナビゲーションペインで、ソースレイ

アウトの jsps ディレクトリ、およびアーカイブレイアウトのアーカイブルートで、

magicnumber.jsp が表示されます。

エクササイズ 4-5: JSP ページを編集する

このエクササイズでは、計算用データを提供するフォームの HTML および JSP コード

を記述します。

注記 : Workbench-install-directory/docs/tutorial/TutorialFiles/webservices ディレクトリ

にある CutAndPasteCode.txt ファイルから、このエクササイズ用のコードをコピーできます。

または

この編集手順を実行しない場合は、同じディレクトリで正しく編集されたファイル

magicnumber-sample.jsp を使用できます。 ご使用のオペレーティングシステムのツールを使

用して、このファイルをプロジェクトの jsps ディレクトリにコピーし、JSP ウィザードを使用

して作成したファイルを置き換え、magicnumber.jsp に名前を変更します。

1 編集ペインでmagicnumber.jspを開いた状態で、</head>の後に次の行を追加します。

<jsp:useBean id="magicnumber" class="com.client.MagicNumberBean"/><jsp:setProperty name="magicnumber" property="*"/>

2 <body> と </body> の間に次の行を追加し、既存のテキストを置き換えます。

<h1>Your Magic Number</h1>

72 チュートリアル : Web サービスの操作

Page 77: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

<p>Your magic number changes every day.</p>

<form method="post"><table><tr>

<td>Your age</td><td>

<input type="text" name="age" value="<%= magicnumber.getAge() %>" >

</td></tr><tr>

<td>Day of month you were born</td><td>

<input type="text" name="birthday" value="<%= magicnumber.getBirthday() %>" >

</td></tr><tr>

<td>Hour you went to bed last night</td><td><input type="text" name="bedtime" value="<%=

magicnumber.getBedtime() %>" ></td>

</tr><tr>

<td span="2"><input type="submit" name="Submit" value="Submit">

</td></tr></table>

</form>

<%if (request.getParameter("age") != null ){

magicnumber.calcNumber(); %>

<%@ include file="calcnumber.jsp" %><%

}%>

3 ファイルを保存して閉じます。

エクササイズ 4-6: magicnumber.jsp に含める 2 番目の JSP ページを作成する

このエクササイズでは、表示すべき計算結果が存在する場合に、magicnumber.jsp に含

まれる JSP フラグメントを作成します。

チュートリアル : Web サービスの操作 -73

J2EE Web アプリケーションでの Web サービスの使用 73

Page 78: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

注記 : Workbench-install-directory/docs/tutorial/TutorialFiles/webservices ディレクトリ

にある CutAndPasteCode.txt ファイルから、このエクササイズ用のコードをコピーできます。

または

この編集手順を実行しない場合は、同じディレクトリで正しく編集されたファイル

calcnumber-sample.jsp を使用できます。 ご使用のオペレーティングシステムのツールを使用

して、このファイルをプロジェクトの jsps ディレクトリにコピーし、calcnumber.jsp に名前を

変更します。

1 Workbench で、メニューから[File]>[New]の順に選択します。

2 [New File]ダイアログボックスで、[JSP]を選択して[OK]をクリックします。

Workbench により、JSP ウィザードが表示されます。

3 [JSP name]には、「calcnumber」と指定します。 すべての生成されたコードは置

き換えられるため、残りの値は重要ではありません。

4 [Next]をクリックします。

5 2 番目のパネルで、[Add to open WAR project]をオンのままにします。

6 プロジェクトおよびアーカイブでのファイルの配置場所を指定します。

[Base directory]では、c:\WorkbenchProjects\CalcWARClient\jsps などのように、

jsps ディレクトリのフルパスを指定します。 ドロップダウンリストボックス

を使用するか、[Browse]ボタンを使用して選択できます。

[Package]は、空白のまま残します。 このプロジェクトでは、JSP ページは、

アーカイブのルートにあります。

[Add the files to the root of the archive]はオンのままにします。

7 [Finish]をクリックします。

8 [JSP Wizard]ダイアログボックスで、JSP ページの作成が終了したことが報告さ

れたら、[OK]をクリックします。

編集ペインでファイルが開きます。 ナビゲーションペインで、calcnumber.jsp が

ソースレイアウトでは jsps ディレクトリに追加され、アーカイブレイアウトでは

アーカイブルートに追加されたことが確認できます。

9 すべてのコンテンツを次のコードで置き換え、ファイルを編集します。

<h2>Drumroll...</h2>

<table><tr><td>Your number is:</td><td><%= magicnumber.getMagicNumber() %></td></tr>

<tr><td span="2">Did you expect a winning lottery number?</td></tr></table>

お分かりのように、このコードは完全な HTML ページではなく、 他の JSP ページ

に含まれることになります。

74 チュートリアル : Web サービスの操作

Page 79: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

10 ファイルを保存して閉じます。

エクササイズ 4-7: JavaBean を作成してフォームを処理する

このエクササイズでは、Java Class ウィザードを使用してから JavaBean のコードにコ

ピーして、新しい Java ソースファイルを作成します ( 別の方法は、Workbench で提供

された JavaBean ウィザードを使用することです。この方法は、独自の JavaBean フォー

ムを最初から作成する際に、最も便利です )。

注記 : Workbench-install-directory/docs/tutorial/TutorialFiles/webservices ディレクトリ

にある CutAndPasteCode.txt ファイルから、このエクササイズ用のコードをコピーできます。

または

この編集手順を実行しない場合は、同じディレクトリで正しく編集されたファイル

MagicNumberBean-sample.jsp を使用できます。 ご使用のオペレーティングシステムのツール

を使用して、プロジェクトの src ディレクトリに com\client というディレクトリを作成してその

場所にファイルをコピーし、MagicNumberBean.java に名前を変更します。

1 Workbench で、メニューから[File]>[New]の順に選択します。

2 [New File]ダイアログボックスで、[Java file]を選択して[OK]をクリックします。

チュートリアル : Web サービスの操作 -75

J2EE Web アプリケーションでの Web サービスの使用 75

Page 80: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3 Java Class ウィザードで、次の値を指定します。

4 [Next]をクリックします。

5 ウィザードにより追加するインタフェースが求められた場合、[Next]をクリック

して次のパネルにスキップします。

6 ウィザードにより追加のインポートが求められた場合、[Next]をクリックして次

のパネルにスキップします。

7 次のパネルで、[Add to open project]をオンのままにします。

8 プロジェクトおよびアーカイブでのファイルの配置場所を指定します。

[Base directory]では、c:\WorkbenchProjects\CalcWARClient\src などのように、

src ディレクトリのフルパスを指定します。 このパスは、ドロップダウンリス

トから指定できます。

[Package]で、「com.client」と指定します。

オプション 値

Class name MagicNumberBean (java 拡張子は指定しない )

Base class 空白

Create class or interface? Class ( デフォルト )

Template Standard Java class template ( デフォルト )

他のオプション Public scope、Create default constructor、Serializable

76 チュートリアル : Web サービスの操作

Page 81: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

[Add the files to the archive with this prefix ]をオンにして、プリフィックス

として「WEB-INF/classes」と指定します。

9 [Finish]をクリックします。

10[Java Class Wizard]ダイアログボックスで、新しい Java ファイルの作成が終了し

たことが報告されたら、[OK]をクリックします。

編集ペインで、ファイル MagicNumberBean.java が開きます。

11 編集ペインで、パッケージステートメントの後に、次のインポートステートメン

トを追加します。

import javax.naming.InitialContext;import calc.*;

12 次のようなコンストラクタを

public MagicNumberBean(){

/** @todo: implement this constructor */}

次のプロパティ変数、コンストラクタ、およびゲッタメソッド、セッタメソッド

で置き換えます。 ゲッタメソッドおよびセッタメソッドを使用したプロパティは、

magicnumber.jsp のフォームのフィールドに対応します。

private int age=0;private int birthday=0;private int bedtime=0;private double magicNumber=0.0;

public MagicNumberBean() { }public int getAge() { return this.age; }

チュートリアル : Web サービスの操作 -77

J2EE Web アプリケーションでの Web サービスの使用 77

Page 82: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

public void setAge(int age) { this.age=age; }

public int getBirthday() { return this.birthday; }public void setBirthday(int day) { this.birthday=day; }

public int getBedtime() { return this.bedtime; }public void setBedtime(int bedtime) { this.bedtime=bedtime; }

public double getMagicNumber() { return this.magicNumber; }public void setMagicNumber(double num) { this.magicNumber=num; }

13 クラスの最後の終了}の前に、calcNumber()メソッドおよびgetCalculatorRemote()メソッドを追加します。これらのメソッドには、Web サービスを呼び出すコードが

あります。

public void calcNumber(){

double result=0;try{

CalculatorImplWS remote = getCalculatorRemote();

result = remote.add(age, birthday);if (result != 0) {

result = remote.multiply(result, bedtime);}setMagicNumber(result);

}catch (Exception _e){

System.out.println("*** Error calculating number ***");_e.printStackTrace();

}}

private CalculatorImplWS getCalculatorRemote() throws Exception{

InitialContext ctx = new InitialContext();

String lookup = "xmlrpc:soap:calc.CalculatorImplWSService";CalculatorImplWSService service =

(CalculatorImplWSService)ctx.lookup(lookup);CalculatorImplWS remote =

(CalculatorImplWS)service.getCalculatorImplWSPort();

return remote;}

14 ファイルを保存して閉じます。

78 チュートリアル : Web サービスの操作

Page 83: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

WAR の配備およびテストアプリケーションを配備するには、次の情報を指定する必要があります。

配備記述子での開始サーブレットまたは JSP ページに関する情報

予期される形式でのサーバで必要な情報

この操作は、次に実行します。

配備記述子について

プロジェクトを作成した際に、Workbench で、選択したアーカイブのタイプに適する

XML 記述子ファイルが作成されました。 WAR では、このファイルは web.xml と呼ば

れます。

web.xml を編集用に開くと、配備記述子エディタにより、XML 要素が展開可能なツ

リー構造で表示されます。 加工されていない XML を表示することもできます。 エディ

タでは、プロジェクトのコンパイル済みコードを使用して、表示する内容を決定しま

す。アーカイブを最初に作成するのはこのためです。 アーカイブをまだ作成していな

い場合は、Workbench によるアーカイブの作成が提示されます。

エクササイズ 4-8: アーカイブを作成する

Workbench で、メニューから[Project]>[Rebuild All and Archive]の順に選択して、プロジェクトに対して配備可能なアーカイブを作成します。

エクササイズ 4-9: 配備記述子を編集する

このエクササイズでは、アプリケーションのエントリポイントとなる JSP ページを特

定します。

1 ナビゲーションペインで、プロジェクトファイルCalcWARClient.spfを右クリック

して、ポップアップメニューから[Open Deployment Descriptor]を選択します。

注記 : Workbench により、[Select Build Option]ダイアログボックスが表示された場合、

[No, don 稚 build now]を選択して、[OK]をクリックします。 このダイアログボックス

を常に表示したり、表示しないようにしたりするオプションを設定できます。

Workbench により、編集ペインで web.xml が開きます。 エディタには、[Descriptor]タブが表示され、記述子に含めることができる情報のタイプが示されます。

チュートリアル : Web サービスの操作 -79

J2EE Web アプリケーションでの Web サービスの使用 79

Page 84: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

2 [Web Archive]を右クリックして、ポップアップメニューから[Properties]を選

択します。

3 プロパティシートで、[Display Name]に「CalcWARClient」と指定します。

4 編集ペインで、[Servlets]を右クリックして、ポップアップメニューから[Add]を選択します。

5 プロパティシートで、次の値を指定します。

オプション 値

Servlet name magicnumber

Type JSP

JSP file magicnumber.jsp

80 チュートリアル : Web サービスの操作

Page 85: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

6 編集ペインで、[Servlet Mapping]を右クリックして、ポップアップメニューか

ら[Add]を選択します。

7 プロパティシートで、次の値を指定します。

8 編集ペインで、[Welcome Files]を右クリックして、ポップアップメニューから

[Add]を選択します。

9 プロパティシートで、次の値を指定します。

10 配備記述子を保存して閉じます。

オプション 値

Servlet name magicnumber

URL pattern magicnumber

オプション 値

Welcome File magicnumber.jsp

チュートリアル : Web サービスの操作 -81

J2EE Web アプリケーションでの Web サービスの使用 81

Page 86: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

プロジェクトの配備

前のレッスンを完了している場合、ほとんどの配備設定は、すでに完了しています。

このエクササイズでは、主な手順について説明し、このプロジェクトを配備する場合

に必要なプロジェクト固有の情報を提供します。 すべてのサポートされたサーバに対

する配備手順の詳細については、「Workbench の配備手順」を参照してください。

エクササイズ 4-10: プロジェクトを配備する

1 サーバのプロファイルを作成していない場合は、この時点で[Edit]>[Profiles]の順に選択して作成します。

詳細については、配備手順で「サーバプロファイルの手順」を参照してく

ださい。

2 次の情報を使用して、配備プロセスのサーバ固有の部分を作成します。

詳細情報および詳細な手順を示したエクササイズについては、配備手順で

ご使用のサーバの節を参照してください。

サーバ 操作 指定する内容

Novell exteNd Application Server(または

SilverStream eXtend Application Server)

配備計画を作成

し、Web Archive項

目に対してプロパ

ティシートで値を

設定します。

[Enabled] - True

[Deployed object name] - CalcWARClient

[Server Profile] - ドロップダウンリスト

ボックスから定義したプロファイルを選択

します。

[Session timeout] - 5 分 ( デフォルト )

[URLs] - CalcWARClient ( デフォルト )

[Excluded JSPs] - calcnumber.jsp

Sun Reference Implementation

右のコンテンツ

で、s u n - j 2 e e -ri.xmlというラン

タイム配備記述

子を作成します。

これをMETA-INFディレクトリに

配置し、ファイル

をプロジェクト

に追加します。

<?xml version="1.0" encoding="Cp1252"?>

<j2ee-ri-specific-information> <server-name></server-name> <rolemapping /> <web> <display-name>CalcWARClient</display-name> <context-root>CalcWARClient</context-root>

</web></j2ee-ri-specific-information>

Jakarta Tomcat - -

82 チュートリアル : Web サービスの操作

Page 87: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

3 メニューから[Project]>[Deployment Settings]の順に選択して、サーバの配備

設定を指定します。

[Server Profiles]タブで、前で定義したサーバプロファイルを選択します。 セキュ

リティ保護されたサーバを使用している場合は、[User name]および[Password]の値を指定します。

[Deployment Info]タブで、追加のアプリケーション固有の情報を次のように指

定します。

注記 : このチュートリアルでは、[Enable Rapid Deployment]チェックボックスはオン

にしないようにしてください。 サーバでの高速配備の使用法の詳細については、『ツールガ

イド』の「アーカイブ配備」を参照してください。

BEA WebLogic 右のコンテンツ

で、weblogic.xmlというWebLogic記述子を作成しま

す。 WEB-INF ディ

レクトリで、これ

をプロジェクトに

追加します。

<!DOCTYPE weblogic-web-app PUBLIC "-//BEASystems, Inc.//DTD Web Application 6.0//EN""http://www.bea.com/servers/wls610/dtd/weblogic-web-jar.dtd">

<weblogic-web-app><description>

Calculator Client</description><weblogic-version></weblogic-version>

</weblogic-web-app>

IBM WebSphere - -

Oracle9iAS - -

サーバ オプションおよび値

Novell exteNd Application Server(またはSilverStream eXtend Application Server)

[Deployment Plan] - 手順 2 で定義した計画を選択します。

[Overwrite existing deployment] - オン

[Verbosity] - 3

[Ignore JSP compile errors] - オフ ( 配備時に JSP ページが正

常にコンパイルされない場合、アーカイブを配備しない )

Sun Reference Implementation

-

Jakarta Tomcat -

BEA WebLogic [WebLogic Application Name] - CalculatorWARClient。Web ア

プリケーションにアクセスするための URL で使用します。

サーバ 操作 指定する内容

チュートリアル : Web サービスの操作 -83

J2EE Web アプリケーションでの Web サービスの使用 83

Page 88: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

詳細については、配備手順でご使用のサーバの節を参照してください。

4 [Deployment Settings]ダイアログボックスで[Deploy]をクリックします。

または

[Deployment Settings]で[OK]をクリックし、メニューから[Project]>[DeployArchive]の順に選択します。

Workbench で、[Output]ペインの[Deploy]タブに進行状況を知らせるメッセー

ジ、エラー、および警告が表示されます。

ヒント : 大部分のサーバタイプでは、サーバが実行されていない場合、完全配備は失敗

します。 一部のサーバでは、配備後サーバを再起動する必要があります。 詳細については、

配備手順でご使用のサーバの節を参照してください。

エクササイズ 4-11: Calculator クライアントアプリケーションをテストする

1 ブラウザを開き、アプリケーションの URL を入力します。 通常、次の項目が含ま

れます。

IBM WebSphere [Node Name] - 空白のまま残すか、サーバでセットアップした

ノードを指定します。

Oracle9iAS [Deployment Name] - CalculatorWARClient。Web アプリケー

ションにアクセスするための URL で使用します。

[Target Path] - 空白のまま残すか、サーバでセットアップした

パスを指定します。

[Website Name] - デフォルト値を受け入れるか、サーバでセッ

トアップした名前を指定します。

URL の部分 説明 一般的な値

サーバ ポート番号を含むサーバの URL ( デフォ

ルトのポート80でない場合)、およびサー

バ固有のデータ

ヒント : Novell exteNd Application Server では、WAR を配備したデータ

ベースを含む

http://localhost/ProverbsCloud/

http://www.mydomain.com:8080/

Web アプリ

ケーション

WAR の URL

ヒント : Novell exteNd Application Server では、配備計画で指定する相対

URL

CalcWARClient/

ページ ( オプション ) 表示するページの URL。空白の場合、アプリケーションで、配備記

述子で指定したウェルカムページが表示

される

( 空白 )

サーバ オプションおよび値

84 チュートリアル : Web サービスの操作

Page 89: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

たとえば、ProverbsCloud というデータベースでアプリケーションをローカル

Novell exteNd Application Server に配備し、アプリケーションの URL が

CalcWARClient である場合、URL は次のようになります。

http://localhost/ProverbsCloud/CalcWARClient

計算データを指定するためのフォームを持つウェルカムページが表示されます。

2 フォームにいくつかの値 ( 整数のみ ) を入力し、[Submit]をクリックします。

calcnumber.jsp によって表示された結果は、フォームの下部に表示されます。

実行した内容のまとめ

アプリケーションの開発 このレッスンでは、ユーザにフォームを表示し、CalculatorWeb サービスの呼び出し時にフォームデータを使用し、さらに同じ JSP ページに計算

結果を示す Web アプリケーションを作成しました。

Workbench ツールの使用 Workbench で、次のツールを使用しました。

New Project ウィザード ([File]>[New Project]の順に選択 )

[Project Settings]ダイアログボックス ([Project]>[Project Settings]の順に選択 )

Web Service ウィザード ([File]>[New]、[Web Services]タブの順に選択 )

JSP ウィザードおよび JSP エディタ

チュートリアル : Web サービスの操作 -85

J2EE Web アプリケーションでの Web サービスの使用 85

Page 90: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

Java Class ウィザードおよびエディタ

配備ツール ( プロジェクトポップアップメニューで[Open Deployment Descriptor]を選択し、[Edit]>[Profiles]、[Project]>[Deployment Settings]、[Project]>[Deploy Archive]の順に選択 )

次のレッスン 次のレッスンでは、Web サービスをテストするための追加ツールにつ

いて学習します。

86 チュートリアル : Web サービスの操作

Page 91: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

5

テスト方法 ÉåÉbÉXÉì 5

学習する内容このレッスンでは、Web サービスのテスト用ツールの使用方法について説明します。

学習内容は次のとおりです。

ブラウザでの WSDL の表示

TcpTunnel を使用したメッセージトラフィックの検査

27 ページで開発した Calculator Web サービスのプロジェクトを使用します。

実行する内容

1 配備した Web サービスの WSDL を表示する

2 クライアントコードを編集して、TcpTunnel にメッセージをリダイレクトする

3 TcpTunnel を使用してクライアントを実行し、メッセージトラフィックを監視する

所要時間 約 10 分

注記 : J2EE アプリケーションサーバを実行して、27 ページで配備した Calculator Web サービ

スを照会する必要があります。

87テスト方法

Page 92: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

ブラウザでの WSDL の表示ご存知のように、Web Service ウィザードは、複数の Java クラスをプロジェクトに追

加します。 さらに、ウィザードの[Generate WSDL file]オプションでは、WSDL ファ

イルをプロジェクトに追加します。 WSDL ファイルは、実際の Web サービスコードへ

のアクセス権を持たないクライアントに対して Web サービスを記述します。 これは、

ソースレイアウトではsrcディレクトリ下、アーカイブレイアウトではWEB-INF/classesディレクトリ下にあります。

ブラウザで Web サービスの URL を入力すると、サーバの jBroker Web コードは、SOAPメッセージではなく、GET リクエストを取得します。 そのため、Web サービスメソッ

ドを実行して SOAP メッセージを返す代わりに、Web サービスの WSDL を表示しま

す。 この機能により、Web を使用して他の開発者に、Web サービスを呼び出すクライ

アントアプリケーションを開発する上で必要な情報を提供することができます。

注記 : 配備した Web サービス情報を共有する別の方法には、レジストリがあります ( レッスン

1、「Web サービスのレジストリおよび WSDL」を参照 )。

エクササイズ 5-1: 配備した Web サービスの WSDL を表示する

この手順では、XML を認識して表示するブラウザが必要です (Internet Explorer 5 以降

など )。

1 Calculator Web サービスを配備したアプリケーションサーバが実行されていない

場合は、今すぐ起動します。

2 Internet Explorer のブラウザを開きます。

3 レッスン 2、「Webサービスの作成」では、http://localhost/ProverbsCloud/Calculator/CalculatorImpl などのように、Web サービスバインドの URL を指定しました。 ブラウザでその URL に移動します。

ブラウザで Web サービスの WSDL が表示されます。

88 チュートリアル : Web サービスの操作

Page 93: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

TcpTunnel を使用したメッセージトラフィックの検査jBroker Web のツールの 1 つには、クライアントと Web サービス間で送信された SOAPリクエスト / 応答メッセージ、および HTTP ヘッダを表示するコンソールである

TcpTunnel があります。 TcpTunnel を使用するための基本的な手順は、次のとおりです。

1 localhostおよび固有のポート番号を使用して、クライアントコードでWebサービス

のバインド URL を変更し、TcpTunnel にリクエストをリダイレクトする。

2 新しいポート番号に加えて、元のサーバ名およびポート番号を指定する引数を使

用して、TcpTunnel を開始する。

3 クライアントプログラムを実行し、TcpTunnelコンソールのメッセージを監視する。

次のエクササイズでは、TcpTunnel を使用して Calculator クライアントを実行するた

めの詳細な手順について説明します。 手順では、変更したバインド URL をテストク

ライアントのコードに含める方法について示します。また、クライアントコードを

変更して、コマンドライン引数として URL が受け入れられるようにすることもでき

ます。

チュートリアル : Web サービスの操作 -89

テスト方法 89

Page 94: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

エクササイズ 5-2: クライアントコードを編集して、TcpTunnel にメッセージをリダイレクトする

このエクササイズでは、クライアントでバインド URL を変更し、TcpTunnel によって

メッセージトラフィックをリダイレクトします。

1 Workbenchを起動し、CalculatorWSディレクトリでCalculatorプロジェクトを開きま

す。

ヒント : 最近このプロジェクトを開いたことがある場合は、[File]>[Recent Files]の

メニュー項目を使用できます。

2 エディタでCalculatorImplWS_Stub.javaを開きます。 バインドURLを検索して選

択し、クリップボードにコピーします。 URL は、行の 2 番目の文字列で、次のよ

うになります。

new com.sssw.jbroker.web.Binding("soap", "http://localhost/ProverbsCloud/Calculator/CalculatorImpl"),

3 ファイルを閉じます。

4 エディタで CalculatorImplWSClient.java を開きます。

5 getRemote() メソッドを編集し、バインドを設定するコードを含めた後、スタブか

ら URL に貼り付けます。

public CalculatorImplWS getRemote(String[] args) throws Exception{ InitialContext ctx = new InitialContext(); String lookup = "xmlrpc:soap:calc.CalculatorImplWSService"; CalculatorImplWSService service = (CalculatorImplWSService)ctx.lookup(lookup); CalculatorImplWS remote = (CalculatorImplWS)service.getCalculatorImplWSPort();

((javax.xml.rpc.Stub)remote)._setProperty("javax.xml.rpc.service.endpoint.address", "http://localhost/ProverbsCloud/Calculator/CalculatorImpl");

return remote;}

6 貼り付けた URL で、サーバおよびポートを localhost:9090 に変更します。ただし、

Web サービスの実際の URL で、残りの部分はそのままにします。 ポート 9090 は、

任意の未使用ポート番号です。

この結果、コードの行は、次のようになります。

((javax.xml.rpc.Stub)remote)._setProperty("javax.xml.rpc.service.endpoint.address","http://localhost:9090/ProverbsCloud/Calculator/CalculatorImpl");

7 ファイルを保存して閉じます。

8 [Project]>[Build]の順に選択して、CalculatorImplWSClientを再コンパイルします。

エクササイズ 5-3: TcpTunnel を使用してクライアントを実行し、メッセージトラフィックを監視する

このエクササイズでは、[Client Runner]ウィンドウを使用して、TcpTunnel を開始し、

テストクライアントを実行します。

90 チュートリアル : Web サービスの操作

Page 95: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

1 Workbench-install-directory\bin\win32ディレクトリでDOSウィンドウ開き、次の

形式でコマンドを入力して、TcpTunnel を開始します。

tcptunnel 9090 server-with-deployed-web-service port

たとえば、Web サービスを localhost:80 に配備した場合は、次のように入力します。

tcptunnel 9090 localhost 80

サービスを www.myweb.com に配備した場合は、次のように入力します。

tcptunnel 9090 www.myweb.com 80

2 Workbench で、レッスン 2、「Web サービスの作成」で実行した方法と同じ方法で、

テストクライアントを実行します。つまり、メニューから[Project]>[Run WebService Client Class]の順に選択して CalculatorImplWSClient クラスを選択し、2つの数値を引数として入力してから[Run]をクリックします。

3 TcpTunnelコンソールウィンドウで、交換されているHTTPヘッダおよびSOAPメッ

セージを確認します。

左側のペインには、クライアントからの SOAP リクエストが含まれ、右側のペイ

ンには、Web サービスからの応答が表示されます。

実行した内容のまとめ

アプリケーションの開発 このレッスンでは、jBroker Webを介して実装されたWebサー

ビスの WSDL を表示する方法について確認し、TcpTunnel を使用して SOAP メッセー

ジトラフィックを検査する方法について学習しました。

Workbench ツールの使用 Workbench で、次のツールを使用しました。

チュートリアル : Web サービスの操作 -91

テスト方法 91

Page 96: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

編集ペイン

TcpTunnel (jBroker Web コマンドラインツール )

次の学習内容 以上で作業は完了です。 Calculator Web サービス、およびそれに対する

クライアント Web アプリケーションの作成が完了しました。

J2EE および Workbench についてさらに学習するには、WAR チュートリアルを参照し

てください。

92 チュートリアル : Web サービスの操作

Page 97: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

索引

CCalculatorClient アプリケーション ( チュートリアル )

Web サービスクライアントコード 68概要 63テスト 84配備 82配備記述子 79ユーザインタフェース用 JavaServer Pages 69

Calculator Web サービス ( チュートリアル )クライアントコードの生成 51作成 27テストクライアントの実行 48, 58配備 45配備記述子 42

JJavaServer Pages

Web サービスクライアント ( チュートリアル ) 69フォームの JavaBean ( チュートリアル ) 69

Java クラス

作成 ( チュートリアル ) 75JAX-RPC

サポート ( チュートリアル ) 28jBroker Web

定義済み ( チュートリアル ) 29プロジェクトへのライブラリの追加

( チュートリアル ) 33

Rナビゲーションペイン 8

TTcpTunnel

Web サービスのテスト ( チュートリアル ) 89

UURL

Web サービス ( チュートリアル ) 36

WWeb Service ウィザード

クライアントコードの生成 ( チュートリアル ) 51, 55, 68

生成ファイルのリスト ( チュートリアル ) 40, 58ソースオブジェクトからの生成

( チュートリアル ) 36Web アプリケーション

Web サービスクライアント ( チュートリアル ) 63Web サービス

JAX-RPC サポート ( チュートリアル ) 28RMI モデル ( チュートリアル ) 28UDDI、定義済み ( チュートリアル ) 8WSDL、Web サービスからの取得

( チュートリアル ) 87WSDL、概要 ( チュートリアル ) 52WSDL、クライアントの作成 ( チュートリアル ) 51ウィザード、WSDL エディタで使用可能

( チュートリアル ) 22クライアント WAR アプリケーション

( チュートリアル ) 63クライアントコードの生成 ( チュートリアル ) 51作成 ( チュートリアル ) 27スケルトン、結合、スタブクラス

( チュートリアル ) 28プロジェクトクラスパス ( チュートリアル ) 33メッセージトラフィックのテスト

( チュートリアル ) 89レジストリ ( チュートリアル ) 8レジストリのプロファイル ( チュートリアル ) 8レジストリ、公開について ( チュートリアル ) 26レジストリ、サービス情報 ( チュートリアル ) 11レジストリ、ビジネス情報 ( チュートリアル ) 11

WSDL エディタ

Web サービスも参照

概要 ( チュートリアル ) 13ツールバー ( チュートリアル ) 22様式化されたビュー ( チュートリアル ) 20要素の挿入 ( チュートリアル ) 16

É`ÉÖÅ[ÉgÉäÉAÉã: WebÉTÅ[ÉrÉXÇÃëÄçÏ-93

93

Page 98: Novell exteNd Workbench for Your Book-3 Novell の商標 exteNd は、米国Novell, Inc. の商標です。exteNd Composer は、米国Novell, Inc. の商標です。exteNd Director

あアーカイブ

JAR プロジェクト ( チュートリアル ) 52WAR プロジェクト ( チュートリアル ) 29, 64

ちチュートリアル

Web Service ウィザード、クライアントコード 51Web サービスの開発 27

なタブ ( チュートリアル ) 8

ふプロジェクト

JAR ( チュートリアル ) 52Web サービスクライアントの WAR

( チュートリアル ) 64作成 ( チュートリアル ) 29

チュートリアル : Web サービスの操作94