Comments
Description
Transcript
SCA SCA作成手順解説書 作成手順解説書 1
® IBM Software Group SCA作成手順解説書 SCA作成手順解説書 2005年10月1日 日本アイ・ビー・エム株式会社 ソフトウェア事業 © IBM Corporation 1 IBM Softw are Group | WebSphere software 目次 イント ロダク ション 目標 前提条件 作成手順概要 SCA作成手順解説 ファーストステップ 第1章 シンプルパターンの作成 第2章 SCA Exportの作成 第3章 SCA Importの作成 第4章 WS Exportの作成 第5章 Serviceコンポーネントの作成 第6章 WS Importの作成 要約 付録 SCADevGuideFiles.zipの使い方解説 Perspectiveの設定 Web Service Explorerで出力されるSOAP Envelope 2 当資料では、 WebSphere Integration Developer V6.0を使用してのSCA (Service Component Architecture)作成手順につ いて、上記の目次に基づいて解説します。 まず、イントロダクションでは当資料の目標、SCAプログラミングでの開発の前提条件に加え、作成するアプリケーションの モジュール構成を解説します。 続けてSCA作成手順解説では実際にWebSphere Integration Developerを使用してSCAプログラミングの解説をします。 最後に要約として実際に作成したアプリケーションを振り返ってSCAプログラミングのポイントをまとめます。 付録では添付されているファイルの使用方法、作業を行う上で便利な設定、Web Service Explorerのテスト時に出力される SOAP Envelopeの解説をします。 当資料によりSCAの開発に必要であるスキルをアプリケーションを作成しながら身につけることを目指しています。 2 IBM Softw are Group | WebSphere software イントロダクション イントロダクション 3 3 IBM Softw are Group | WebSphere software 目標 WebSphere Integration Developer v6.0の基本的な使い方を理解する SCAによってアプリケーションを作成し、実際に動かす インターフェース、インプリメンテーションの作成方法を理解する サービス・モジュール、サービス・コンポーネントの作成方法を理解する エクスポート、インポート、ワイヤリング、バインディングの方法を理解する 4 当資料により以下のスキルを身につけることを目標としています。 ・WebSphere Integration Developer v6.0の基本的な使い方を理解し、実際に使うことができるようになること。 ・SCAによってアプリケーションを作成し、実際に動かすことができるようになること。 ・インターフェース、インプリメンテーションを作成できるようになること。 ・サービス・モジュール、サービス・コンポーネントを作成できるようになること。 ・各コンポーネントのエクスポート、インポート、ワイヤリング、バインディングができるようになること。 4 IBM Softw are Group | WebSphere software 前提条件 WebSphere Integration Developer v6.0がインストールされていること 本資料と一緒に配布のSCADevGuideFiles.zipを入手していること 解説PCの環境 使用OS: Windows XP (SP2) メモリ: 2G CPU: 2GH z インストー ルディレクトリ: C:¥WID¥GM 5 当資料での作業に必要な条件を記載します。 WebSphere Integration Developer v6.0がインストールされている必要があります。 v6.0 また、SCADevGuideFiles.zip SCADevGuideFiles.zipが当資料と一緒に提供されていますのでそちらも入手してください。 SCADevGuideFiles.zip 以下のPCの環境で解説をしています。必要に応じてお使いのPCの環境に置き換えてお読みください。 ・OSはWindows XP (SP2)を使用しています。 ・ハード構成は メモリ2G CPU2GHz となっています。 ・WebSphere Integration Developer v6.0はC: C:¥ C:¥WID¥ WID¥GMにインストールしています。 GM ※WindowsOSの仕様ではファイルへのパスの最大文字数が259文字となっていますので、インストールディレクトリが深い 場合、 「Webアプリケーションの追加」の箇所でエラーが発生する可能性がありますのでご注意ください。 (目安として、インストールディレクトリまでで30文字以下にしてください。) 5 IBM Softw are Group | WebSphere software 作成手順概要 運勢を占うおみくじアプリケーションを作成 全部で3つのモジュールを作成 FortuneServiceModule FortuneServiceSCA Module FortuneTellingServiceModule 次ページで作成するモジュールの説明 6 作成手順の概要を説明します。 運勢を占うおみくじアプリケーションを作成します。 モジュールはFortuneServiceModule FortuneServiceModule、FortuneServiceSCAModule FortuneServiceModule FortuneServiceSCAModule、FortuneTellingServiceModule FortuneServiceSCAModule FortuneTellingServiceModule の3つに分かれていま す。 これらの3つのモジュールを6つの章に分けて解説します。 6 IBM Softw are Group | WebSphere software モジュール構成図 ※ は各章に対応 ※ I WSD Lインターフ ェース ※ はモ ジュールに対応 ※ I Javaインターフ ェース FortuneServiceSCAModule FortuneServiceModule 3 1 Stand-alone References R I I 6 Stand-alone References R I R I Java Component 1 2 FortuneTellingServiceModule 5 Stand-alone References SCA Import SCA Export WS Import 4 I Java Component 3 R I Java Component 2 I WS Export 7 ここで示す図は作成するアプリケーションの構成となっています。 緑色の実線で囲まれた部分は各章に対応しており、それぞれ左上に表示されている番号は章番号になります。 灰色の点線で囲まれた部分は作成するモジュールに対応しており、枠左上部にはモジュール名を表示しています。 横に長い長方形の箱は各コンポーネントに相当します。 Rと表記されているものはリファレンスをさします。 Iと表記されているものはインターフェースをさします。 緑色の丸い形のインターフェースはWSDLによって定義されています。 青色のひし形のインターフェースはJavaによって定義されています。 各コンポーネントをつないでいる灰色の実線はワイヤです。 曲線の矢印はエクスポートされたコンポーネントをインポートしています。 7 IBM Softw are Group | WebSphere software 第1章 シンプルパターンの作成 FortuneServiceModule Stand-alone References R I Java Component 1 8 第1章ではシンプルなパターンのアプリケーションを作成し、 J2SEアプリケーションとしてテストをします。 8 IBM Softw are Group | WebSphere software 第2章 SCA Exportの作成 FortuneServiceModule Stand-alone References I R I Java Component 1 SCA Export 9 第2章では第1章で作成したサービス・コンポーネントからSCA Exportコンポーネントを作成します。 また、正常にエクスポートされているかインテグレーションテストクライアントでテストします。 9 IBM Softw are Group | WebSphere software 第3章 SCA Importの作成 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import I R I Java Component 1 SCA Export 10 第3章では第2章で作成したSCA ExportコンポーネントをインポートするSCA Importコンポーネントを作成します。 また、SCA Importコンポーネントを使用するスタンドアローンリファレンスを作成し、 アプリケーションを呼び出してSCA Import / Exportそれぞれのコンポーネントを確認します。 10 IBM Softw are Group | WebSphere software 第4章 WS Exportの作成 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import I I R I Java Component 1 SCA Export WS Export 11 第4章では第1章で作成したコンポーネントからWebサービスExportコンポーネントを作成します。 また、正常にエクスポートされているかWeb Service Explorerで確認します。 11 IBM Softw are Group | WebSphere software 第5章 Serviceコンポーネントの作成 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import R I Java Component 1 FortuneTellingServiceModule I Stand-alone References I Java Component 3 SCA Export R R I Java Component 2 I WS Export 12 第5章ではWebアプリケーションを作成するためのサービス・コンポーネントを作成します。 12 IBM Softw are Group | WebSphere software 第6章 WS Import FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import R I Java Component 1 FortuneTellingServiceModule I Stand-alone References I Java Component 3 R R I WS Import I Java Component 2 I SCA Export WS Export 13 第6章では第1章で作成したWebサービスをインポートするWebサービスImportコンポーネントを作成します。 また、第5章で作成したコンポーネントとWebサービスExportコンポーネントとをワイヤリングし、アプリケーションを作成しま す。 最後にJSPファイルを含んだプロジェクトを追加してアプリケーションが正常に動いているかWebアプリケーションで確認し ます。 13 IBM Softw are Group | WebSphere software SCA作成手順解説 SCA SCA作成手順解説 作成手順解説 SCA作成手順解説 14 14 IBM Softw are Group | WebSphere software ファーストステップ 1 3 ※ 2 15 WebSphere Integration Developer v6.0を起動させて、workbenchへ移動します。 《手順》 1.タスクバーの[[スタート] スタート] から [プログラム] プログラム] > [IBM Websphere] > [Integration Developer V6.0] > [WebSphere Integration Developer V6.0 (以下 (以下 WID)]と選択します。 WID)] ※ デスクトップに画面左下のショートカットアイコンがある場合、こちらをダブルクリックしても起動します。 2.Workspace Launcherウインドウの[Workspace] [Workspace]に任意のworkspaceを指定して[OK] [OK]をクリックします。 [Workspace] [OK] ここではworkspaceは“ C:¥ “C: ¥ workarea¥ workarea¥ workspace¥ workspace¥SCADevGuide”を指定しています。 SCADevGuide WIDの起動が完了すると、Welcomeページが開きます。 3.画面右上の○部分の矢印をクリックしてWelcomeページを閉じてworkbenchへ移動します。 4.SCADevGuideFiles.zipを任意の場所に解凍します。 ※ ここではC: C:¥ C:¥workareaに解凍しています。 workarea ※ こちらのファイルの内容と使い方の詳細については付録をご覧ください。 15 IBM Softw are Group | WebSphere software ファーストステップ(続き) 16 workbenchに移動した状態です。 作業を途中で中断し、WIDを終了させたいときはメニューから[File] [File] > [Exit]を選択します。 [Exit] ※作業を再開させる場合は再度WIDを起動してください。 WIDを再起動すると終了させたところから再開することができます。 16 IBM Softw are Group | WebSphere software 第 第11章 章 シンプルパターンの作成 シンプルパターンの作成 17 17 IBM Softw are Group | WebSphere software 第1章 シンプルパターンの作成 概要 FortuneServiceModule Stand-alone References R I Java Component 1 18 第1章ではシンプルなパターンのアプリケーションを作成し、 J2SEアプリケーションとしてテストをします。 この章ではFortuneServiceModuleを作成し、運勢を表示するFortuneServiceを作成します。 また、スタンドアローンリファレンスを作成し、FortuneServiceとワイヤリングします。 Main_FortuneServiceModuleクラスを作成してテストを行います。 18 IBM Softw are Group | WebSphere software サービス・モジュールの作成 2 1 19 サービス・モジュールを作成します。 サービス・モジュールとはSCAアプリケーションを作成するためのプロジェクトの単位のことです。 ここではFortuneServiceModuleを作成します。 《手順》 1.ワークスペース左にある空白のビジネス・インテグレーション・ビューを右クリックして、コンテキストメニューを表示させ、 [New] > [Module]を選択します。 [Module] 2.New Moduleウインドウの[Module [Module Name] に“ “ FortuneServiceModule” [Finish]をクリックします。 FortuneServiceModule”と入力し、[Finish] [Finish] ビューにFortuneServiceModuleが作成されます(次ページ)。 19 IBM Softw are Group | WebSphere software サービス・モジュールの作成(続き) 20 右の拡大図はFortuneServiceModuleを展開したものです。 20 IBM Softw are Group | WebSphere software インターフェースの作成 3 1 2 4 Interface Editor 21 サービス・コンポーネントのインターフェースをInterface Editorで作成します。 サービス・コンポーネントとはJavaやBPELなどによって実装されるサービスの単位のことです。 インターフェースとは、サービス・コンポーネントが外部のコンポーネントから使用される際の情報をWSDLで定義するもの で、引数や戻り値などを含んでいます。 Interface Editorではインターフェースの定義となるオペレーションの名前、InputとOutputの引数の名前と型をグラフィカル に定義することができます。 ここではFSInterfaceを作成します。 《手順》 1.FortuneServiceModuleの左側にある[+] [+]をクリックして展開します。 [+] 2.Interfacesからコンテキストメニューを表示させ、[New] [New] > [Interface]を選択します。 [Interface] 3.New Interface Wizardウインドウの[Name] [Name]に [Finish]をクリックします。 [Name] “ FSInterface” FSInterface”と入力して、[Finish] [Finish] 4.Interfacesの下にFSInterfaceが作成され、Interface Editorが表示されます。 21 IBM Softw are Group | WebSphere software インターフェースの定義 1 2 4 3 5 6 7 8 22 作成したインターフェースをInterface Editorで定義します。 ここではgetFortuneオペレーションを作成します。 getFortuneオペレーションにインプットとしてday、アウトプットとしてgerFortuneReturnを定義します。 《手順》 1.Interface Editorの空白を右クリックしてコンテキストメニューを表示させ、[Add [Add Request Response Operation]を選択しま Operation] す。 Request Response Operationが作成されます。 2.オペレーション名としてoperation1に” ”getFortune” getFortune”と入力します。 3.上記画面コピーのようにオペレーション名の上を右クリックしてコンテキストメニューを表示させ、[Add [Add Input] を選択しま す。 Inputパラメータが作成されます。 4.InputパラメータとしてInput1に” ”day” day”と入力します。 ※ データタイプはstringのままで変更の必要はありません。 5.オペレーションからコンテキストメニューを表示させ、[Add [Add Output]を選択します。 Output] Outputパラメータが作成されます。 6.OutputパラメータとしてOutput1に” ”getFortuneReturn” getFortuneReturn”と入力します。 ※ データタイプはstringのままで変更の必要はありません。 入力した項目(オペレーション名、インプット、アウトプット)を画面を参考に確認します。 7.メニューから[File] [File] > [Save]を選択して保存します。 [Save] FSInterfaceが更新されます。 8.Editorを閉じます。 22 IBM Softw are Group | WebSphere software Perspectiveの変更 Business Integration Perspective 1 Java Perspective 2 23 Business Integration PerspectiveからJava Perspectiveへ変更します。 当資料ではサービス・コンポーネントをJavaによって実装するため、主にJava Perspectiveを使用します。 《手順》 1.メニューから[Window] [Window] > [Open Perspective] > [Other… [Other…]を選択します。 2.Select Perspectiveウインドウでは[Java] [Java]を選択し、[OK] [OK]をクリックします。 [Java] [OK] ワークスペースがJava Perspectiveに変わります。 23 IBM Softw are Group | WebSphere software Java Perspectiveの設定 2 3 4 1 24 Java Perspectiveで作業を進めるにあたって以下の設定を行います。 1.コンテキストメニューの表示設定 2.ビューの設定 3.パッケージエクスプローラー・ビューの表示フィルター設定 4.警告文の表示機能に関する設定 24 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 1 2 ※ 3 25 コンテキストメニューの項目の追加をします。 これは第4章でWebサービスの項目をコンテキストメニューで表示させるときに使用します。 《手順》 1.メニューから[Window] [Window] > [Preferences]を選択します。 [Preferences] 2.Preferencesウインドウから[Workbench] [Workbench] > [Capabilities]を選択し、[Web [Web Service Developer]にチェックを入れ、[OK] [OK]をク [Capabilities] Developer] [OK] リックします。 3.FSInterface.wsdlファイルで右クリックをしてコンテキストメニューを表示させると、Web Servicesの項目が追加されていま す。 ※ こちらは設定をする前のメニューです。 25 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 1 2 3 26 ビューの追加をします。 《手順》 1.メニューから[Window] [Window] > [Show View] > [Other… [Other…] を選択します。 2.[Basic] [Basic] > [Console]を選択し、[OK] [OK]をクリックします。 [Console] [OK] 3.コンソール・ビューが表示されます。 同様にメニューから [Basic] > [Properties] [Properties]と[Server] [Server] > [Servers]を選択します。 [Servers] それぞれコンソール・ビューとプロパティ・ビューとサーバー・ビューが表示されます。 26 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 1 3 4 2 27 表示フィルターの設定をします。 この設定はオプションとなります。 《手順》 1.パッケージエクスプローラー・ビューの丸で囲まれた[[▼]をクリックしてメニューを表示します。 2.メニューから[Filters [Filters… [Filters…] を選択します。 3.Java Element Filtersウインドウの[Select [Select the elements to exclude [Referenced libraries]にチェックを exclude from the view]から[Referenced view] libraries] 入れ、[OK] [OK]をクリックします。 [OK] 4.ライブラリが非表示となります。 FortuneServiceModuleを展開してライブラリが表示されないことを確認してください。 27 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 6 7 28 警告文の表示機能をオフにする設定をします。 この設定はオプションとなります。 《手順》 メニューから[Window] [Window] > [Preferences]を選択します。 [Preferences] 6.[Java] [Java] > [Compiler]を選択し、[Unused [Unused Code]タブ [Compiler] Code]タブをクリックします。 タブ [OK]をクリックします。 [Unused imports] > [Ignore]を選択し、[OK] [Ignore] [OK] 7.Compiler Settings Changedダイアログは[Yes] [Yes]をクリックします。 [Yes] ビルドが終了するまでしばらく待ちつとプロブレム・ビュー内の警告文が表示されなくなります。 ※ この設定はコードに含まれる使われないインポート文の警告をプロブレム・ビューに表示する機能をオフにします。 28 IBM Softw are Group | WebSphere software その他のプロジェクトについて 29 自動生成されたプロジェクトについて ビジネスインテグレーション・ビューからサービス・モジュールを作成しましたが、 パッケージエクスプローラー・ビューではさらに3つのプロジェクトが表示されています。 これらはモジュールの作成中にWIDが自動生成するものなので編集しないでください。 開発は原則、自分で作成したモジュールの中で行います。 以降の作業でうまくいかなかくなった場合はこの自動生成されたプロジェクトを削除してください。 再度WIDがビルドするタイミングでプロジェクトが自動生成されます。 ※自分で作成したモジュール自体は決して削除しないでください。 ビルドのタイミングは初期設定ではWIDが自動で行う設定となっています。 WIDが自動でビルドを行う設定をオフにするには以下の手順で設定します。 《手順》 メニューから[Project] [Project] > [Build Automatically]を選択します。 Automatically] チェックが外れます。 ※以降の説明ではWIDが自動でビルドを行う設定のままで進めます。 29 IBM Softw are Group | WebSphere software インプリメンテーションの作成 1 2 3 4 30 サービス・コンポーネントのインプリメンテーションを作成します。 インプリメンテーションとはサービス・コンポーネントへのロジックの実装のことでJavaやBPELなどで実装することができます。 ここではFortuneServiceImpl.javaを作成します。 《手順》 1.FortuneServiceModuleからコンテキストメニューを表示し、[New] [New] > [Package]を選択します。 [Package] 2.New Java Packageウインドウの[Name] [Name]に” [Finish]をクリックします。 [Name] ”service” service”と入力し、[Finish] [Finish] 3.15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、FortuneServiceImpl.java FortuneServiceImpl.javaをserviceパッケージにド FortuneServiceImpl.java ラッグします。 4.FortuneServiceModule/serviceにFortuneServiceImpl.javaが作成されます。 30 IBM Softw are Group | WebSphere software サービス・コンポーネントの作成 2 3 3 1 7 5 6 4 31 サービス・コンポーネントをAssembly Editorで作成します。 Assembly Editorではサービスモジュールのインターフェースやリファレンス、インプリメンテーション、ワイヤなどをグラフィカ ルに組み立てていくことができます。 ここではFortuneServiceを作成します。 《手順》 1.FortuneServiceModuleの中のsca.moduleを右クリックし、コンテキストメニューを表示させ、[Open [Open With] > [Assembly [Assembly Editor]を選択します。 Editor] 2.Editorの左にあるパレットからサービス・コンポーネントの部品が表示されているアイコン(画面参照)をクリックします。 3.EditorのキャンバスをクリックするとComponent1が作成されます。 4.Component1を選択し、ワークスペース下段にある[Properties] [Properties]タブ タブをクリックし、プロパティ・ビューを開きます。 [Properties] タブ 5.[Description] [Description]タブ [Description]タブの[Name] タブ [Name]に” [Name] ”FortuneService” FortuneService”と入力し、エンターキーを押します。 6.EditorにあるComponent1がFortuneServiceと表示されます。 7.Editorを保存します。 FortuneServiceModuleにFortuneService.componentとsca.modulexファイルが作成されます。 31 IBM Softw are Group | WebSphere software インターフェースとインプリメンテーションの追加 2 1 ※ 2 4 3 4 32 作成したサービス・コンポーネントにインターフェースとインプリメンテーションを追加します。 ここではFSInterfaceとFortuneServiceImplを追加します。 《手順》 1.Assembly Editor上のFortuneServiceコンポーネントからコンテキストメニューを表示させ、[Add] [Add] > [Interface] を選択し ます。 ※ ポップアップメニューで表示されるアイコンを選択することでもインターフェースを追加できます(画面参照)。 2.Add Interfaceウインドウの中央に[Show [Show WSDL]のラジオボタンにチェックがついていることを確認して WSDL] [Filter by interface or qualifier]に qualifier] “FSInterface” FSInterface”と入力します。 FSInterfaceを選択し、[OK] [OK]をクリックします。 [OK] サービス・コンポーネントにインターフェースが追加され、アイコンが変化します。 3.Editor上のFortuneServiceコンポーネントからコンテキストメニューを表示させ、[Select [Select Implementation… Implementation…] > [Java]を選 [Java] 択します。 4.Pick Implementationウインドウの[[Select entries]に” entries] ”FortuneServiceImpl” FortuneServiceImpl”と入力します。 FortuneServiceImplを選択し、[OK] [OK]をクリックします。 [OK] Editorを保存します。 サービス・コンポーネントにインプリメンテーションが追加され、アイコンが変化します。 32 IBM Softw are Group | WebSphere software サービス・コンポーネントの作成 33 サービス・コンポーネントにインターフェースとインプリメンテーションを追加して保存した後の状態です。 FortuneServiceModuleにFortuneService.componentとsca.modulexファイルが追加されています。 33 IBM Softw are Group | WebSphere software スタンドアローンリファレンスの作成 3 1 4 2 34 スタンドアローンリファレンスをAssembly Editorで作成します。 スタンドアローンリファレンスとはモジュールの内部から各コンポーネントを呼び出すためのものです。 《手順》 1.インポート・コンポーネントアイコンの右側の[>] [>]をクリックします。しばらくするとパレットの隣にさらにパレットが表示され [>] ます。 2.スタンドアローンリファレンスの部品が表示されているアイコン(画面参照)をクリックします。 3.Editorのキャンバスをクリックするとスタンドアローンリファレンスが作成されます。 4.Editorを保存します。 FortuneServiceModuleにsca.referencesが作成されます。 34 IBM Softw are Group | WebSphere software サービスのワイヤリング 2 3 1 5 6 4 35 スタンドアローンリファレンスからサービス・コンポーネントへワイヤリングします。 ワイヤリングとはリファレンスからターゲットへポイントすることです。 ここではスタンドアローンリファレンスからFortuneServiceへワイヤリングします。 《手順》 1.Assembly Editorのパレットからワイヤアイコンをクリックします。 2.スタンドアローンリファレンスをクリックします。 クリックするとスタンドアローンリファレンスからワイヤがマウスを追うように伸びます。 3.FortuneServiceをクリックします。 4.ダイアログはキャプチャに従って1つめは[OK [OK] [OK]をクリックします。 5.2つめは[NO [NO]]をクリックします。 [NO 6.4でOKを選択したのでワイヤリングされるとスタンドアロンリファレンスには自動でリファレンスが作成されます。 7.Editorを保存します。 これで、シンプルパターンのアプリケーションの作成は終了です。 35 IBM Softw are Group | WebSphere software Mainクラスの作成 1 2 3 4 36 作成したアプリケーションのテストを行います。このアプリケーションはJ2SEとして実行させることができます。 《手順》 1.FortuneServiceModuleからコンテキストメニューを表示し、[New] [New] > [Package]を選択します。 [Package] 2.New Java Packageウインドウの[Name] [Name]に” [Finish]をクリックします。 [Name] ”test” test”と入力し、[Finish] [Finish] 3. 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、Main_FortuneServiceModule.java Main_FortuneServiceModule.javaをtestパッケー Main_FortuneServiceModule.java ジにドラッグします。 4.FortuneServiceModule/testにMain_FortuneServiceModule.javaが作成されます。 36 IBM Softw are Group | WebSphere software Main_FortuneServiceModule.java package test; import com.ibm.websphere.sca.Service; import com.ibm.websphere.sca.ServiceManager; import commonj.sdo.DataObject; public class Main_FortuneServiceModule { static final String day = "今日"; public static void main(String[] args) { 1 2 3 4 ServiceManager sm = new ServiceManager(); Service s = (Service)sm.locateService("FSInterfacePartner"); String result = ((DataObject)s.invoke("getFortune",day)).getString("getFortuneReturn"); System.out.println(day + "の運勢は" + result + "です。"); } } 37 Main_FortuneServiceModuleクラスの解説をします。 ここではメソッド名getFortuneに対して日付であるdayを渡して戻り値resultを表示させています。 1.サービスマネージャーを作成します。 2.リファレンス名FSInterfacePartnerを使用してサービスを発見します。 3.ダイナミック呼び出しでメソッドを呼び出します。 4.結果を表示します。 37 IBM Softw are Group | WebSphere software テスト 1 3 2 38 アプリケーションを実行させます。 《手順》 1.Main_FortuneServiceModuleクラスからコンテキストメニューを表示させ、[Run] [Run] > [Run… [Run…] を選択します。 起動構成ダイアログが表示されます。 2.[Configurations] [Configurations]のJava [New]をクリックします。 [Configurations] Java Applicationを選択して、[New] Application [New] 3.新しく作成されたMain_FortuneServiceModule Main_FortuneServiceModuleを選択して、[Classpath] [Classpath]タブ タブを選択します。 Main_FortuneServiceModule [Classpath] タブ 38 IBM Softw are Group | WebSphere software テスト(続き) 4 4 5 39 《手順》 4.[User [User Entries]に外部JARとしてcorona coronaEntries] corona-wsdl.jarを追加します。 wsdl.jar corona-wsdl.jarが追加されます。 ※ corona-wsdl.jarはC C:¥WID¥ WID¥GM¥ GM¥runtimes¥ runtimes¥bi_v6¥ bi_v6¥libにあります。 lib 5.[Apply] [Apply]をクリックして、[Run] [Run]をクリックします。 [Apply] [Run] しばらくするとコンソール・ビューに結果が表示されます(次ページ)。 39 IBM Softw are Group | WebSphere software テスト(続き) 6 40 《手順》 6.以下のように表示されればOKです。 今日の運勢は <運勢(大吉、中吉、小吉、末吉、吉、凶、大凶のいずれか)>です。 Assembly Editorを閉じます。 40 IBM Softw are Group | WebSphere software 第1章 シンプルパターンの作成 要約 FortuneServiceModule Stand-alone References R I Java Component 1 41 第1章では以下の解説をしました。 ・サービス・モジュールFortuneServiceModuleの作成 ・インターフェースFSInterfaceの作成、定義 ・Perspectiveの変更 ・インプリメンテーションFortuneServiceImplの作成 ・サービス・コンポーネントFortuneServiceの作成 ・インターフェース、インプリメンテーションの追加 ・スタンドアローンリファレンスの作成 ・サービスのワイヤリング ・J2SEとしてテスト ・メソッドのダイナミック呼び出し 41 IBM Softw are Group | WebSphere software 第 の作成 Export 第22章 章 SCA SCA Exportの作成 Exportの作成 の作成 Export 42 42 IBM Softw are Group | WebSphere software 第2章 SCA Exportの作成 概要 FortuneServiceModule Stand-alone References I R I Java Component 1 SCA Export 43 第2章では第1章で作成したサービス・コンポーネントからSCA Exportコンポーネントを作成します。 また、正常にエクスポートされているかインテグレーションテストクライアントでテストします。 この章ではFortuneServiceからFSSCAExportを作成し、インテグレーションテストクライアントでテストします。 43 IBM Softw are Group | WebSphere software SCA Exportコンポーネントの作成 2 2 1 4 6 3 5 5 44 外部からSCAインポートができるようにSCA Exportコンポーネントを作成します。 ここではFSSCAExportを作成します。 《手順》 Assembly EditorをFortuneServiceModuleのsca.moduleから開きます。 1.FortuneServiceコンポーネントからコンテキストメニューを表示させ、 [Export… [Export…] > [SCA Binding] を選択します。 2.FortuneServiceExportコンポーネントが作成されます。 3.FortuneServiceExportコンポーネントを選択し、プロパティ・ビューを開きます。 4.[Description] [Description]タブ [Description]タブの[Name] タブ [Name]に” [Name] ”FSSCAExport” FSSCAExport”と入力し、エンターキーを押します。 5.EditorにあるFortuneServiceExportがFSSCAExportと表示されます。 Editorを保存します。 6.ForutneServiceModuleにFSSCAExport.exportが作成されます。 ※SCA Exportコンポーネントの名前の変更は必須ではありませんが、他のExportコンポーネントと区別するために便宜上 変更しています。 44 IBM Softw are Group | WebSphere software 修正箇所 1 FortuneServiceModule/sca.modulex <?xml version="1.0" encoding="UTF-8"?> <extensionmodel:ExtensionMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:com.ibm.wbit.wiring.ui.ext.model="http:///com/ibm/wbit/wiring/ui/ext/model.ecore" xmlns:extensionmodel="http:///extensionmodel.ecore" namespace="http://www.ibm.com/xmlns/prod/websphere/scdl/6.0.0"> <extensions> FSSCAExport.exportに変更 <extendedObject href="FortuneServiceExport.export#//@export"/> <extensionObject xsi:type="com.ibm.wbit.wiring.ui.ext.model:ExportExtension" x="20" y="101" unknown="false" visible="true" type="{http://www.ibm.com/xmlns/prod/websphere/scdl/6.0.0}ExportBinding" bound="true"/> </extensions> <extensions> <extendedObject href="FortuneService.component#//@Component"/> <extensionObject xsi:type="com.ibm.wbit.wiring.ui.ext.model:NodeExtension" x="250" y="100" unknown="false" visible="true" type="{http://www.ibm.com/xmlns/prod/websphere/scdl/java/6.0.0}JavaImplementation"/> </extensions> <extensions> <extendedObject href="sca.references#//@referenceSet"/> <extensionObject xsi:type="com.ibm.wbit.wiring.ui.ext.model:NodeExtension" x="20" y="50" unknown="false" visible="true"/> </extensions> </extensionmodel:ExtensionMap> 45 ※不具合の対応のため、SCDLファイルを修正します。 SCDLとはWIDが内部でコンポーネントの定義をするためのXML言語です。 ここではsca.modulexファイルのFortuneServiceExport.exportをFSSCAExportへ修正します。 《手順》 1.FortuneServiceModuleにあるsca.modulexからコンテキストメニューを表示させ、[Open] [Open]を選択します。 [Open] FortuneServiceExport.exportと記述された箇所をFSSCAExport.export FSSCAExport.exportに書き換えます。 FSSCAExport.export ※ FortuneServiceExport.exportの記述されているコンポーネントの場所が上記と異なっている場合があります。 Editorを保存し、閉じます。 45 IBM Softw are Group | WebSphere software サーバーの始動 1 2 3 46 SCAエクスポートされたサービス・コンポーネントにESBを経由してアクセスするためWebSphere Process Serverに追加しま す。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0 からコンテキストメニューを表示させ、[Start] [Start]を選択します。 [Start] 3.StatusがStarted Startedになるまでしばらく待ちます。 Started ※ お使いの環境によってはStatusがStartedになるまでに非常に時間がかかる場合があります。 46 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加 1 3 4 2 47 WebSphere Process Server v6.0 に作成したアプリケーションを追加します。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0からコンテキストメニューを表示させ、[Add [Add and remove projects… projects…]を選択します。 3.[Available [Available projects]からFortuneServiceModuleApp FortuneServiceModuleAppを選択して[Add] [Add]をクリックします。 projects] FortuneServiceModuleApp [Add] FortuneServiceModuleAppが[Configured [Configured projects]に移動します。 projects] 4.[Finish] [Finish]をクリックします。 [Finish] 47 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加(続き) 48 キャプチャのようにログの出力が終了するまで待ちます。 以下のログが出力されればOK です。 アプリケーションが始動されました:FortuneServiceModuleApp アプリケーションが始動されました:FortuneServiceModuleApp。 FortuneServiceModuleApp。 48 IBM Softw are Group | WebSphere software テスト 2 3 1 49 SCA Exportコンポーネントが正常にエクスポートされているかをインテグレーションテストクライアントを使用してテストしま す。 《手順》 1.Assembly Editorからコンテキストメニューを表示させ、[Test [Test Module]を選択します。 Module] インテグレーションテストクライアントが表示されます。 ComponentからFSSCAExport FSSCAExportを選択します。 FSSCAExport parameters]の[Value] [Value]に”今日 今日”と入力します。 [Initial request parameters] [Value] 今日 [Continue]をクリックします。 [Continue] Deployment Locationウインドウが表示されます。 49 IBM Softw are Group | WebSphere software テスト(続き) 4 1 3 2 5 50 SCA Exportコンポーネントが正常にエクスポートされているかをインテグレーションテストクライアントを使用してテストしま す。 《手順(続き)》 1.Deployment Locationウインドウでは[finish] [finish]をクリックします。 [finish] 2.ダイアログが消えるまでしばらく待ちます。 3.[Return parameters]の[Value] [Value]に結果が表示されます。 [Return parameters] [Value] 以下の値が表示されればOKです。 <運勢(大吉、中吉、小吉、末吉、吉、凶、大凶のいずれか)> これでテストは終了です。 4.インテグレーションテストクライアントウインドウを閉じます。 5.保存はせずにダイアログは[NO] [NO]をクリックします。 [NO] これで、Exportが正しく呼び出されるので外部からSCA Importができるようになりました。 FortuneServiceModuleを展開していれば省略します。 FortuneServiceModuleのAssembly Editorを閉じます。 50 IBM Softw are Group | WebSphere software サーバーの停止 1 2 3 51 テスト終了後、サーバーを停止させます。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0 からコンテキストメニューを表示させ、[Stop] [Stop]を選択します。 [Stop] 3.StatusがStopping Stoppingから StoppingからStopped からStoppedになるまでしばらく待ちます。 Stopped ※ お使いの環境によってはStatusがStoppedになるまでに非常に時間がかかる場合があります。 51 IBM Softw are Group | WebSphere software 第2章 SCA Exportの作成 要約 FortuneServiceModule Stand-alone References I R I Java Component 1 SCA Export 52 第2章では以下の解説をしました。 ・SCA ExportコンポーネントFSSCAExportの作成 ・サーバーの始動、停止 ・アプリケーションプロジェクトの追加 ・インテグレーションテストクライアントを使用してSCA Exportのテスト 52 IBM Softw are Group | WebSphere software 第 の作成 Import 第33章 章 SCA SCA Importの作成 Importの作成 の作成 Import 53 53 IBM Softw are Group | WebSphere software 第3章 SCA Importの作成 概要 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import I R I Java Component 1 SCA Export 54 第3章では第2章で作成したSCA ExportコンポーネントをインポートするSCA Importコンポーネントを作成します。 また、SCA Importコンポーネントを使用するスタンドアローンリファレンスを作成し、 アプリケーションを呼び出してSCA Import / Exportそれぞれのコンポーネントを確認します。 この章では新たにFortuneServiceSCAModuleを作成します。 また、そのモジュールにFSSCAImportを作成し、スタンドアローンリファレンスとワイヤリングします。 Main_FortuneServiceSCAModuleクラスを作成してテストを行います。 54 IBM Softw are Group | WebSphere software サービス・モジュールの作成 2 1 3 4 55 サービス・モジュールをSCAインポートするためのサービス・モジュールを作成します。 ここではFortuneServiceSCAModuleを作成します。 《手順》 FortuneServiceModuleを展開していれば省略します。 FortuneServiceModuleのAssembly Editorを開いていれば閉じます。 1.メニューから[File] [File] > [New] > [Other… [Other…]を選択します。 2.Newウインドウの[Wizards] [Wizards]から[Business [Business Integration] > [Module]を選択し、[Next] [Next]をクリックします。 [Wizards] [Module] [Next] 3.New Moduleウインドウの[Module [Module Name]に” [Finish]をクリックします。 Name] ”FortuneServiceSCAModule” FortuneServiceSCAModule”と入力し、[Finish] [Finish] 4.Confirm Perspective Switchダイアログが表示された場合は Business Integration Perspectiveには移動せずに このままJava Perspectiveを使用するので[No] [No]をクリックします。。 [No] パッケージエクスプローラー・ビューにFortuneServiceSCAModuleが作成されます。 55 IBM Softw are Group | WebSphere software サービス・モジュールの作成 56 右の拡大図はFortuneServiceSCAModuleを展開したものです。 56 IBM Softw are Group | WebSphere software インターフェースの作成 2 1 57 SCA Importコンポーネントが使用するインターフェースを作成します。 ここではFSInterfaceを作成します。 《手順》 1.FortuneServiceModule FortuneServiceModuleを展開します。 FortuneServiceModule 2.FortuneServiceModuleからFSInterface.wsdl FSInterface.wsdlをコピーして FSInterface.wsdl FortuneServiceSCAModuleに貼り付けます。 FortuneServiceSCAModule FortuneServiceSCAModuleにFSInterface.wsdlが作成されます。 FortuneServiceModuleを省略します。 FortuneServiceSCAModuleを展開してFSInterface.wsdlを確認します。 57 IBM Softw are Group | WebSphere software SCAインポート・コンポーネントの作成 1 3 3 4 5 2 5 58 SCA Importコンポーネントを作成します。 ここではFSSCAImportを作成します。 《手順》 1.FortuneServiceSCAModuleのsca.moduleからAssembly Editorを開きます。 2.Editorの左にあるパレットからインポート・コンポーネントの部品が表示されているアイコン(画面参照)をクリックします。 3.EditorのキャンバスをクリックするとImport1が作成されます。 4.Import1を選択し、プロパティ・ビューを開きます。 [Description]タブ [Description]タブの[Name] タブ [Name]に” [Name] ” FSSCAImport” FSSCAImport”と入力し、エンターキーを押します。 5.EditorにあるImport1がFSSCAImportと表示されます。 ※SCA Importコンポーネントの名前の変更は必須ではありませんが、他のImportコンポーネントと区別するために便宜上 変更しています。 58 IBM Softw are Group | WebSphere software インターフェースの追加 2 1 3 3 ※ 4 4 59 インポート・コンポーネントにインターフェースを追加します。 ここではFSSCAImportにFSInterfaceを追加します。 《手順》 1.Assembly Editor上のFSSCAImportコンポーネントからコンテキストメニューを表示させ、[Add [Add Interfaceを] Interface ]選択します。 ※ ポップアップメニューで表示されるアイコンを選択することでもインターフェースを追加できます(画面参照)。 2.Add Interfaceウインドウの[[Filter by interface or qualifier]に qualifier] “FSInterface” FSInterface”と入力します。 FortuneServiceInterfaceを選択し、[OK] [OK]をクリックします。 [OK] 3.インポート・コンポーネントにインターフェースが追加され、アイコンが変化します。 4.Editorを保存します。 FortuneServiceSCAModuleにFSSCAImport.Importとsca.modulexが作成されます。 59 IBM Softw are Group | WebSphere software バインディング 3 1 1 2 4 4 60 SCA Importコンポーネントのバインディングを設定します。 バインディングとはサービスが外部に対し、どのようなバインド情報で提供されているかを定義したものです。 《手順》 1.FSSCAImportコンポーネントからコンテキストメニューを表示させ、[Generate [Generate Binding…] Binding ] > [SCA Binding]を選択します。 Binding] インポート・コンポーネントのバインディングタイプがSCA Bindingとなり、アイコンが変化します。 2.FSSCAImportを選択し、プロパティ・ビューを開きます。 [Binding]タブ [Binding]タブの[ タブ [Browse]ボタンをクリックします。 Browse] 3.SCA Export Selectionウインドウの[Choose [Choose a SCA Export]に”FSSCAExport Export] FSSCAExport”と入力します。 FSSCAExport FSSCAExportを選択して、[OK] [OK]をクリックします。 [OK] 4.[Binding] [Binding]タブ タブの[Module name]にFortuneServiceModule、[Export [Binding] タブ [Module name] [Export name]にFSSCAExportが表示されます。 name] Editorを保存します。 インポート・コンポーネントにバインディング情報が追加され、アイコンが変化します。 60 IBM Softw are Group | WebSphere software スタンドアローンリファレンスの作成と コンポーネントのワイヤリング 3 6 1 6 2 8 4 5 7 61 スタンドアローンリファレンスを作成してSCA Importコンポーネントとワイヤリングします。 ここではスタンドアローンリファレンスからFSSCAImportへワイヤリングします。 《手順》 1.インポート・コンポーネントアイコンの右側の[>] [>]をクリックします。 [>] しばらくするとパレットの隣にさらにパレットが表示されます。 2.スタンドアローンリファレンスの部品が表示されているアイコンをクリックします。 3.Editorのキャンバスをクリックするとスタンドアローンリファレンスが作成されます。 4.Editorのパレットからワイヤアイコンをクリックします。 5.スタンドアローンリファレンスをクリックします。 FSSCAImportをクリックします。 6.ダイアログはキャプチャに従って1つめは[OK] [OK]、2つめは[NO] [NO]をクリックします。 [OK] [NO] 7.6でOKを選択したのでワイヤリングされるとスタンドアローンリファレンスには自動でリファレンスが作成されます。 Editorを保存します。 8.FortuneServiceModuleにsca.referencesが作成されます。 これで、SCAインポートのためのサービス・モジュールの作成は終了です。 61 IBM Softw are Group | WebSphere software Mainクラスの作成 1 2 3 4 62 作成したサービス・モジュールのテストを行います。 《手順》 1.FortuneServiceSCAModuleからコンテキストメニューを表示させ、[New] [New] > [Package]を選択します。 [Package] 2.New Java Packageウインドウの[Name] [Name]に” [Finish]をクリックします。 [Name] ”test” test”と入力し、[Finish] [Finish] 3. 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、Main_FortuneServiceSCAModule.java Main_FortuneServiceSCAModule.javaをtestパッ Main_FortuneServiceSCAModule.java ケージにドラッグします。 4.FortuneServiceSCAModule/testにMain_FortuneServiceSCAModule.javaが作成されます。 62 IBM Softw are Group | WebSphere software サーバーの始動 1 2 3 63 テストを行うためにWebSphere Process Serverを始動させます。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0 からコンテキストメニューを表示させ、 [Start]を選択します。 [Start] 3.StatusがStarted Startedになるまでしばらく待ちます。 Started ※ お使いの環境によってはStatusがStartedになるまでに非常に時間がかかる場合があります。 63 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加 1 3 4 2 64 WebSphere Process Server v6.0 にアプリケーションを追加していなければ追加します。 FortuneServiceModuleAppが追加されているか確認してください。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0からコンテキストメニューを表示させ、[Add [Add and remove projects… projects…]を選択します。 3.[Available [Available projects]からFortuneServiceModuleApp FortuneServiceModuleAppを選択して[Add] [Add]をクリックします。 projects] FortuneServiceModuleApp [Add] FortuneServiceModuleAppが[Configured [Configured projects]に移動します。 projects] 4.[Finish] [Finish]をクリックします。 [Finish] ※FortuneServiceModuleAppはWPSサーバー上で起動するために追加する必要がありますが、 FortuneServiceSCAModuleはクライアントの別JVMで起動するため追加する必要はありません。 64 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加(続き) 65 キャプチャのようにログの出力が終了するまで待ちます。 以下のログが出力されればOK です。 アプリケーションが始動されました:FortuneServiceModuleApp アプリケーションが始動されました:FortuneServiceModuleApp。 FortuneServiceModuleApp。 65 IBM Softw are Group | WebSphere software テスト 1 2 3 4 66 SCA Importコンポーネントが正常にSCA Exportコンポーネントを呼び出すことができるか J2SEアプリケーションとしてテストをします。 《手順》 1.Main_FortuneServiceSCAModuleクラスからコンテキストメニューを表示させ、[Run] [Run] > [Run… [Run…] を選択します。 起動構成ダイアログが表示されます。 [Configurations]のJava Applicationを選択して、[New] [New]をクリックします。 [Configurations] Java Application [New] 2.新しく作成されたMain_FortuneServiceSCAModule Main_FortuneServiceSCAModuleを選択して、[Classpath] [Classpath]タブ Main_FortuneServiceSCAModule [Classpath]タブを選択します。 タブ 3.第1章のテストと同様に[User [User Entries]に外部JARとしてcorona coronaEntries] corona-wsdl.jarを追加します。 wsdl.jar ※corona-wsdl.jarはC C:¥ WID¥ WID¥GM¥ GM¥runtimes¥ runtimes¥bi_v6¥ bi_v6¥libにあります。 lib 4.[App [Applly] y]をクリックして、[Run] [Run]をクリックします。 [App [Run] しばらくするとコンソール・ビューに結果が表示されます(次ページ)。 66 IBM Softw are Group | WebSphere software テスト(続き) SCA Import FortuneServiceModule SCA Export 5 67 テストの確認をします。 ここではMain_FortuneServiceSCAModuleクラスがFSSCAImportを通して 外部モジュールFortuneServiceModuleのFortuneServiceを呼び出しています。 《手順》 5.以下のように表示されればOKです。 今日の運勢は <運勢(大吉、中吉、小吉、末吉、吉、凶、大凶のいずれか)>です。 これでテストは終了です。 Assembly Editorを閉じます。 FortuneServiceSCAModuleを省略します。 67 IBM Softw are Group | WebSphere software アプリケーションのアンインストール 1 3 2 4 68 次章でモジュールにWebサービスExportコンポーネントを追加してデプロイコードを変更するため、WebSphere Process Server v6.0 からアプリケーションをアンインストールします。 この作業によってきれいな環境に戻すことができます。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0からコンテキストメニューを表示させ、[[Add and remove projects… projects…]を選択します。 3.FortuneServiceModuleAppを選択して [Remove]をクリックします。 Remove] FortuneServiceModuleAppが[Available [Available projects]に移動します。 projects] [Finish] [Finish]をクリックします。 4.コンソール・ビューのログの出力が終了するまで待ちます。 68 IBM Softw are Group | WebSphere software サーバーの停止 1 2 3 69 テスト終了後、サーバーを停止させます。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0 からコンテキストメニューを表示させ、[Stop] [Stop]を選択します。 [Stop] 3.StatusがStopping Stoppingから StoppingからStopped からStoppedになるまでしばらく待ちます。 Stopped ※ お使いの環境によってはStatusがStoppedになるまでに非常に時間がかかる場合があります。 69 IBM Softw are Group | WebSphere software 第3章 SCA Importの作成 要約 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import I R I Java Component 1 SCA Export 70 第3章では以下の解説をしました。 ・サービスモジュールFortuneServiceSCAModuleの作成 ・インターフェースの作成 ・SCA ImportコンポーネントFSSCAImportの作成 ・インターフェースの追加 ・インポート・コンポーネントのバインディング ・スタンドアローンリファレンスの作成 ・サービスのワイヤリング ・J2SEとしてSCA Importコンポーネントのテスト 70 IBM Softw are Group | WebSphere software 第 第44章 章 WS WS Exportの作成 Exportの作成 71 71 IBM Softw are Group | WebSphere software 第4章 WS Export 概要 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import I I R I Java Component 1 SCA Export WS Export 72 第4章では第1章で作成したコンポーネントからWebサービスExportコンポーネントを作成します。 また、正常にエクスポートされているかWeb Service Explorerで確認します。 この章ではFortuneServiceModuleのFortuneServiceからFSWSExportを作成し、Web Service Explorerでテストします。 72 IBM Softw are Group | WebSphere software WS Exportコンポーネントの作成 1 5 2 5 3 4 73 外部からWebサービスがインポートができるようにWS Exportコンポーネントを作成します。 ここではFSWSExportを作成します。 《手順》 1.FortuneServiceModuleを展開します。 2.FortuneServiceModuleのsca.moduleからAssembly Editorを開きます。 3.インポート・コンポーネントアイコンの右側の[>] [>]をクリックします。 [>] しばらくするとパレットの隣にさらにパレットが表示されます。 4.エクスポート・コンポーネントの部品が表示されているアイコンをクリックします。 5.EditorのキャンバスをクリックするとExport1が作成されます。 ※ まだ保存はしないでください。 73 IBM Softw are Group | WebSphere software WS Exportコンポーネントの作成 1 3 2 74 エクスポート・コンポーネントの名称を変更します。 《手順》 1.Export1コンポーネントを選択し、プロパティ・ビューを開きます。 2.[Description] [Description]タブ [Description]タブの[Name] タブ [Name]に” [Name] ”FSWSExport” FSWSExport”と入力し、エンターキーを押します。 3.Assembly EditorにあるExport1がFSWSExportと表示されます。 ※ まだ保存はしないでください。 ※SCA Exportコンポーネントの名前の変更は必須ではありませんが、他のExportコンポーネントと区別するために便宜上 変更しています。 74 IBM Softw are Group | WebSphere software インターフェースの追加 2 1 ※ 3 3 75 Exportコンポーネントにインターフェースを追加します。 ここではFSWSExportにFSInterfaceを追加します。 《手順》 1.FSWSExportコンポーネントからコンテキストメニューを表示させ、[Add [Add Interface]を選択します。 Interface] ※ ポップアップメニューで表示されるアイコンを選択することでもインターフェースを追加できます(画面参照)。 2.Add Interfaceウインドウの中央に[Show [Show WSDL]のラジオボタンにチェックがついていることを確認して WSDL] Filter by interface or qualifierに “FSInterface” FSInterface”と入力します。 FortuneServiceInterfaceを選択し、[OK] [OK]をクリックします。 [OK] 3.エクスポート・コンポーネントにインターフェースが追加され、アイコンが変化します。 ※ まだ保存はしないでください。 75 IBM Softw are Group | WebSphere software バインディング 2 3 1 4 5 4 ※ 5 76 ExportコンポーネントにWebサービスExportバインディングを設定します。 《手順》 1.FSWSExportコンポーネントからコンテキストメニューを表示させ、[Generate [Generate Binding… Binding…] > [Web [Web Service Binding]を選択 Binding] します。 2.ダイアログは[Yes] [Yes]をクリックします。 [Yes] 3.Select Transportウインドウの[Select [soap/http]を選択し、[OK] [OK]をクリックします。 [Select Transport]では[soap/http] Transport] [soap/http] [OK] FortuneServiceModuleにFSWSExport_FSInterfaceHttp_Service.wsdlが作成されます。 エクスポート・コンポーネントのバインディングタイプがWebサービスBindingとなり、アイコンが変化します。 ※ この時点でFortuneServiceアプリケーションのバインディング情報が記述されたWSDLファイルが作成されます。 4.WS ExportコンポーネントとしてFSWSExportコンポーネントが作成されます。 Assembly Editorを保存します。 ※ エクスポート・コンポーネントにはワイヤリングされていないので警告がつきます。 5.ForutneServiceModuleにFSWSExport.exportが作成されます。 76 IBM Softw are Group | WebSphere software サービスのワイヤリング 2 3 1 4 4 77 WS Exportコンポーネントからサービスコンポーネントへワイヤリングをします。 ここではFSWSExportからFortuneServiceへワイヤリングします。 《手順》 1.Assembly Editorのパレットからワイヤアイコンをクリックします。 2.FSWSExportをクリックします。 3.FortuneServiceをクリックします。 4.Editorを保存します。 エクスポート・コンポーネントにワイヤリングの情報が追加され、アイコンが変化します。 これで、WebサービスエクスポートのためのWebサービスExportコンポーネントの作成は終了です。 77 IBM Softw are Group | WebSphere software サーバーの始動 1 2 3 78 テストを行うためにWebSphere Process Serverを始動させます。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0 からコンテキストメニューを表示させ、 [Start]を選択します。 [Start] 3.StatusがStarted Startedになるまでしばらく待ちます。 Started ※ お使いの環境によってはStatusがStartedになるまでに非常に時間がかかる場合があります。 78 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加 1 3 4 2 79 WebSphere Process Server v6.0 に作成したアプリケーションを追加します。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0からコンテキストメニューを表示させ、[Add [Add and remove projects… projects…]を選択します。 3.[Available [Available projects]からFortuneServiceModuleApp FortuneServiceModuleAppを選択して[Add] [Add]をクリックします。 projects] FortuneServiceModuleApp [Add] FortuneServiceModuleAppが[Configured [Configured projects]に移動します。 projects] 4.[Finish] [Finish]をクリックします。 [Finish] 79 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加(続き) 80 キャプチャのようにログの出力が終了するまで待ちます。 以下のログが出力されればOK です。 アプリケーションが始動されました:FortuneServiceModuleApp アプリケーションが始動されました:FortuneServiceModuleApp。 FortuneServiceModuleApp。 80 IBM Softw are Group | WebSphere software テスト ※ 2 1 81 WS Exportが正常にエクスポートされているかをWeb Service Explorerを使用してテストします。 《手順》 1.FSWSExport_FSInterfaceHttp_Service.wsdlからコンテキストメニューを表示させ、 [Web Service] > [Test with Web Service Explorer]を選択します。 Explorer] 2.Web Service Explorerが表示されます。 ※ コンテキストメニューにWeb Serviceが現れない場合は [Window] > [Preferences]を選択して[Workbench] [Workbench] > [Capabilities]を選択し、 [Preferences] [Capabilities] [Web Service Developer]の項目がチェックされているか確認してください。 Developer] 81 IBM Softw are Group | WebSphere software テスト 1 2 3 4 82 WSDLを参照してWeb Service Explorerからオペレーションを呼び出してテストをします。 ※ 現在このWeb Service Explorerは2バイト文字の不具合により ”今日”と入力しても正しい結果は出ずに、UserException: WebServiceFaultが発生します。ご了承ください。 (次ページにSOAP Request / Response Envelopeを載せています) 《手順》 1.[Operations] [Operations]の[Name] getFortuneをクリックします。 [Operations] [Name]にあるgetFortune [Name] getFortune 2.dayの引数として“今日 今日”と入力します。 今日 3.[GO] [GO]をクリックします。 [GO] 4.結果が表示されます。 これでテストは終了です。 これで、Exportが正しく呼び出されるので外部からWebサービスImportができるようになりました。 Web Service Explorerを閉じます。 FortuneServiceModuleを省略します。 FortuneServiceModuleのAssembly Editorを閉じます。 82 IBM Softw are Group | WebSphere software SOAP Request Envelope <?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAPENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:q0="http://FortuneServiceModule/FSInterface" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <SOAP-ENV:Body> <q0:getFortune> <day>今日</day> </q0:getFortune> </SOAP-ENV:Body> </SOAP-ENV:Envelope> 83 こちらはSOAP Request Envelopeです。 83 IBM Softw are Group | WebSphere software SOAP Response Envelope <soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header /> <soapenv:Body> <interface:getFortuneResponse xmlns:interface="http://FortuneServiceModule/FSInterface"> <getFortuneReturn>吉</getFortuneReturn> </interface:getFortuneResponse> </soapenv:Body> </soapenv:Envelope> 84 こちらはSOAP Response Envelopeです。 84 IBM Softw are Group | WebSphere software サーバーの停止 1 2 3 85 テスト終了後、サーバーを停止させます。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0 からコンテキストメニューを表示させ、[Stop] [Stop]を選択します。 [Stop] 3.StatusがStopping Stoppingから StoppingからStopped からStoppedになるまでしばらく待ちます。 Stopped ※ お使いの環境によってはStatusがStoppedになるまでに非常に時間がかかる場合があります。 85 IBM Softw are Group | WebSphere software 第4章 WS Exportの作成 要約 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import I I R I Java Component 1 SCA Export WS Export 86 第4章では以下の解説をしました。 ・WS ExportコンポーネントFSWSExportの作成 ・インターフェースの追加 ・ WS Exportコンポーネントのバインディング ・サービスのワイヤリング ・Web Service Explorerを使用してWS Exportのテスト 86 IBM Softw are Group | WebSphere software 第 第55章 章 Serviceコンポーネントの作成 Serviceコンポーネントの作成 87 87 IBM Softw are Group | WebSphere software 第5章 Serviceコンポーネントの作成 概要 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import R I Java Component 1 FortuneTellingServiceModule I Stand-alone References I Java Component 3 SCA Export R R I Java Component 2 I WS Export 88 第5章ではWebアプリケーションを作成するためのサービス・コンポーネントを作成します。 この章ではFortuneTellingServiceModuleを作成します。 そして、運勢からメッセージを生成するためのMessageServiceと 運勢とメッセージを合成するためのFortuneTellingServiceを作成し、 スタンドアローンリファレンスと2つのサービス・コンポーネントをワイヤリングします。 88 IBM Softw are Group | WebSphere software サービス・モジュールの作成 2 1 3 4 89 サービス・モジュールをWebサービスインポートするために別のサービス・モジュールを作成します。 ここではFortuneTellingServiceModuleを作成します。 《手順》 FortuneServiceModuleが展開されているのであれば省略します。 FortuneServiceModuleのAssembly Editorを開いているのであれば閉じます。 1.メニューから[File] [File] > [New] > [Other… [Other…]を選択します。 2.Newウインドウの[Wizards] [Wizards]から[Business [Business Integration] > [Module]を選択し、[Next] [Next]をクリックします。 [Wizards] [Module] [Next] 3.New Moduleウインドウの[Module [Module Name]に” Name] ”FortuneTellingServiceModule” FortuneTellingServiceModule”と入力します。 [Finish]をクリックします。 [Finish] 4.Confirm Perspective Switchダイアログが表示された場合は Business Integration Perspectiveには移動せずに このままJava Perspectiveを使用するので[No] [No]をクリックします。 [No] パッケージエクスプローラー・ビューにFortuneTellingServiceModuleが作成されます(次ページ)。 89 IBM Softw are Group | WebSphere software サービス・モジュールの作成 90 右の拡大図はFortuneTellingServiceModuleを展開したものです。 90 IBM Softw are Group | WebSphere software インターフェースの作成 1 2 3 4 91 サービス・コンポーネントを作成する前にコンポーネントのインターフェースをJavaインターフェースで作成します。 ここではFortuneTellingServiceModuleにservice.messageパッケージを作成し、MessageServiceを作成します。 《手順》 1.FortuneTellingServiceModuleからコンテキストメニューを表示させ、[New] [New] > [Package]を選択します。 [Package] 2.New Java Packageウインドウの[Name]に”service.message”と入力し、[Finish] [Finish]をクリックします。 [Finish] ForutneTellingServiceModuleにservice.messageが作成されます。 3. 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、MessageService.javaをservice.messageパッケー ジにドラッグします。 4.FortuneTellingServiceModule/service.messageパッケージにMessageService.javaインターフェースが作成されます。 91 IBM Softw are Group | WebSphere software サービス・コンポーネントの作成 1 2 3 3 92 Javaインターフェースからサービス・コンポーネントをAssembly Editorで作成します。 ここではインターフェースであるMessageService.javaからMessageServiceを作成します。 《手順》 1.FortuneTellingServiceModuleのsca.moduleからAssembly Editorを開きます。 2.FortuneTellingServiceModule/service.messageの中にあるMessageService.java MessageService.javaをEditorにドラッグします。 MessageService.java 3.Editorにインターフェースが既に追加されているMessageServiceコンポーネントが作成されます。 ※ここではMessageServiceインターフェースをドラッグすることでコンポーネントを作成しますが、 第1章で解説した手順と同様にサービス・コンポーネントを一度作成してからインターフェースを追加していくこともできま す。 92 IBM Softw are Group | WebSphere software インプリメンテーションの作成と追加 3 1 3 2 93 サービス・コンポーネントのインプリメンテーションを作成、追加します。 ここではmessage.serviceパッケージにMessageServiceImpl.javaを作成します。 《手順》 1. 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、M MessageServiceImpl.java essageServiceImpl.javaをservice.messageパッ .java ケージにドラッグします。 FortuneTellingServiceModule/service.messageにMessageServiceImpl.javaが作成されます。 2.Assembly EditorのMessageServiceコンポーネントからコンテキストメニューを表示させ、[Select Implementation…]] > [Select Implementation [Java] を選択します。 3.Pick Implementationウインドウの[Select entries]に”MessageServiceImpl MessageServiceImpl”と入力します。 [Select entries] MessageServiceImpl MessageServiceImplを選択し、[OK] [OK]をクリックします。 [OK] サービス・コンポーネントにインプリメンテーションが追加され、アイコンが変化します。 Editorを保存します。 FortuneTellingServiceModuleにMessageService.componentとsca.modulexが作成されます。 93 IBM Softw are Group | WebSphere software MessageServiceImpl.java package service.message; public class MessageServiceImpl { 1 2 static final String[] f = {"大吉","中吉","小吉","末 吉","吉","凶","大凶 "}; static final String[] m = {"おめでとう。","やったね。","まぁま ぁ。","それなりです。","慎重に。", "めげないで。","ノーコメント。","※今日か 明日を入力してください。"}; public String getMessage(String fortune){ int i; 3 for(i=0; i< f.length; i++){ if (fortune.equals(f[i])) break; } 4 return m[i]; } } 94 MessageServiceImplクラスの解説をします。 getMessageは引数として運勢を受け取り、戻り値として運勢に該当するメッセージを返します。 1.運勢リストです。 2.メッセージリストです。該当する運勢がなければメッセージが「 ※今日か明日を入力してください。 」になります。 3.引数として取得した運勢と運勢リストを比較します。運勢リストの該当する配列番号がメッセージリストにも対応していま す。 4.メッセージを戻り値として返します。 94 IBM Softw are Group | WebSphere software インターフェースの作成 1 2 3 4 95 サービス・コンポーネントを作成する前にコンポーネントのインターフェースをJavaインターフェースで作成します。 ここではFortuneTellingServiceModuleにservice.tellingパッケージを作成し、 FortuneTellingServicejavaを作成します。 《手順》 1.FortuneTellingServiceModuleからコンテキストメニューを表示させ、[New] [New] > [Package]を選択します。 [Package] 2.New Java Packageウインドウの[Name] [Name]に”service.telling service.telling”と入力し、[Finish] [Finish]をクリックします。 [Name] service.telling [Finish] ForutneTellingServiceModuleにservice.tellingが作成されます。 3. 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、FortuneTellingService FortuneTellingService.java FortuneTellingService.javaをservice.message .java パッケージにドラッグします。 4.ForutneTellingServiceModule /service.tellingパッケージにFortuneTellingService.javaインターフェースが作成されます。 95 IBM Softw are Group | WebSphere software サービス・コンポーネントの作成 1 2 2 96 アセンブリエディタを使用してFortuneTellingServiceコンポーネントを作成します。 ここではインターフェースであるFortuneTellingService.javaからFortuneTellingServiceを作成します。 《手順》 1.FortuneTellingServiceModule/service.tellingの中にあるFortuneTellingService.java FortuneTellingService.javaをEditorにドラッグします。 FortuneTellingService.java 2.Editorにインターフェースが既に追加されているFortuneTellingServiceコンポーネントが作成されます。 96 IBM Softw are Group | WebSphere software インプリメンテーションの作成と追加 3 1 3 2 97 FortuneTellingServiceコンポーネントのインプリメンテーションを作成します。 ここではservice.tellingパッケージにFortuneTellingServiceImpl.javaを作成します。 《手順》 1. 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、FortuneTellingServiceImpl FortuneTellingServiceImpl.java FortuneTellingServiceImpl.javaをservice.telling .java パッケージにドラッグします。 FortuneTellingServiceModule/service.tellingにFortuneTellingServiceImpl.javaが作成されます。 2.Assembly EditorのFortuneTellingServiceコンポーネントからコンテキストメニューを表示させ、[Select [Select Implementation…] Implementation ] > [Java]を選択します。 [Java] 3.Pick Implementationウインドウの[Select [Select entries]に” FortuneTellingServiceImpl”と入力します。 entries] FortuneTellingServiceImpl FortuneTellingServiceImplを選択し、[OK] [OK]をクリックします。 [OK] サービス・コンポーネントにインプリメンテーションが追加され、アイコンが変化します。 Editorを保存します。 FortuneTellingServiceModuleにFortuneTellingService.componentが作成されます。 97 IBM Softw are Group | WebSphere software FortuneTellingServiceImpl.java package service.telling; import com.ibm.websphere.sca.Service; import com.ibm.websphere.sca.ServiceManager; import commonj.sdo.DataObject; import service.message.MessageService; import service.telling.FortuneTellingService; public class FortuneTellingServiceImpl implements FortuneTellingService { public String tellFortune(String day) { 1 2 3 4 ServiceManager sm = new ServiceManager(); Service s = (Service)sm.locateService("FSInterfacePartner"); String fortuneResult = ((DataObject)s.invoke("getFortune",day)).getString("getFortuneReturn"); MessageService message = (MessageService)sm.locateService("MessageServicePartner"); StringBuffer buff = new StringBuffer(); 5 6 buff.append(fortuneResult).append(" ").append(message.getMessage(fortuneResult)); return buff.toString(); } } 98 FortuneTellingServiceImplクラスの解説をします。 tellFortuneは引数として日付を受け取り、getMessageを呼び出して、戻り値として運勢とメッセージを合成した文字列を返 します。 MessageServiceが今までとは異なり、タイプセーフで呼び出されているところに注目してください。 1.サービスマネージャーを作成します。 2.Serviceインターフェースでリファレンス名FSInterfacePartnerを引数としサービスを発見します。 3.getFortuneをダイナミック ダイナミック呼び出しで運勢を取得します。 ダイナミック 4.MessageServiceインターフェースでリファレンス名MessageServicePartnerを引数としサービスを発見します。 5.getMessageをタイプセーフ タイプセーフ呼び出しでメッセージを取得し、運勢と合成します。 タイプセーフ 6.合成した文字列を戻り値として返します。 98 IBM Softw are Group | WebSphere software スタンドアローンリファレンスの作成 3 4 1 2 99 スタンドアローンリファレンスをAssembly Editorで作成します。 《手順》 1.インポート・コンポーネントアイコンの右側の[>] [>]をクリックします。 [>] しばらくするとパレットの隣にさらにパレットが表示されます。 2.スタンドアローンリファレンスの部品が表示されているアイコンをクリックします。 3.Editorのキャンバスをクリックするとスタンドアローンリファレンスが作成されます。 Editorを保存します。 4.FortuneTellingServiceModuleにsca.referencesが作成されます。 99 IBM Softw are Group | WebSphere software サービスのワイヤリング 2 4 5 1 6 3 100 スタンドアローンリファレンスからサービス・コンポーネントへワイヤリングします。 ここではスタンドアローンリファレンスからFortuneTellingServiceへ、FortuneTellingServiceからMessageServiceへワイヤリン グします。 《手順》 1.Assembly Editorのパレットからワイヤアイコンをクリックします。 2.スタンドアローンリファレンスをクリックします。 FortuneTellingServiceコンポーネントをクリックします。 3.ダイアログは[OK] [OK]をクリックします。 [OK] 4.3でOKを選択したのでワイヤリングされるとスタンドアロンリファレンスには自動でリファレンスが作成されます。 5.次に、FortuneTellingServiceコンポーネントをクリックします。 MessageServiceコンポーネントをクリックします。 3の画面と同様にダイアログは[OK] [OK]をクリックします。 [OK] 7.3でOKを選択したのでワイヤリングされるとFortuneTellingServiceには自動でリファレンスが作成されます。 Editorを保存します。 次の章ではこのサービス・モジュールにWS Importコンポーネントを作成します。 100 IBM Softw are Group | WebSphere software 第5章 Serviceコンポーネントの作成 要約 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import R I Java Component 1 FortuneTellingServiceModule I Stand-alone References I SCA Export R Java Component 3 R I Java Component 2 I WS Export 101 第5章では以下の解説をしました。 ・モジュールFortuneTellingServiceModuleの作成 ・インターフェースMessageService、FortuneTellingServiceの作成 ・インプリメンテーションMessageServiceImpl、FortuneTellingServiceImplの作成 ・メソッドのダイナミック呼び出し ・メソッドのタイプセーフ呼び出し ・サービス・コンポーネントMessageService、FortuneTellingServiceの作成 ・インターフェース、インプリメンテーションの追加 ・スタンドアローンリファレンスの作成 ・サービスのワイヤリング 101 IBM Softw are Group | WebSphere software 第 第66章 章 WS WS Importの作成 Importの作成 102 102 IBM Softw are Group | WebSphere software 第6章 WS Importの作成 概要 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import R I Java Component 1 FortuneTellingServiceModule I Stand-alone References I Java Component 3 R R I WS Import I Java Component 2 I SCA Export WS Export 103 第6章では第1章で作成したWebサービスをインポートするWebサービスImportコンポーネントを作成します。 また、第5章で作成したコンポーネントとWebサービスExportコンポーネントとをワイヤリングし、アプリケーションを作成しま す。 最後にJSPファイルを含んだプロジェクトを追加してアプリケーションが正常に動いているかWebアプリケーションで確認し ます。 この章ではFortuneTellingServiceModuleにFSWSExportをインポートするためのFSWSImportを作成します。 さらにFortuneTellingServiceとワイヤリングします。 Main_FortuneTellingServiceModuleクラスを作成してテストを行います。 FortuneTellingServiceWebAppを作成してindex.jspを使用してテストを行います。 103 IBM Softw are Group | WebSphere software WS Importコンポーネントの作成 1 2 3 104 WS ExportコンポーネントをインポートするためのWS Importコンポーネントを作成します。 ここではFSWSImportを作成します。 《手順》 1.FortuneServiceModuleを展開します。 2.FortuneServiceModuleのFSInterface.wsd FSInterface.wsdとFSWSExport_FSInterfaceHttp_Service.wsdl FSInterface.wsd FSWSExport_FSInterfaceHttp_Service.wsdlをコピーして FSWSExport_FSInterfaceHttp_Service.wsdl FortuneTellingServiceModuleに貼り付けます。 FortuneTellingServiceModule 3.FortuneTellingServiceModuleにFSInterface.wsdlとFSWSExport_FSInterfaceHttp_Service.wsdlが作成されます。 FortuneServiceModuleを省略します。 104 IBM Softw are Group | WebSphere software WS Importコンポーネントの作成(続き) 1 3 2 105 WS ImportコンポーネントをAssembly Editorで作成します。 《手順》 1.FSInterface.wsdlをAssembly Editorにドラッグします。 2.Component Creationウインドウの[Select [Select the type to create]では[Import [Import with Web Service Binding]を選択し、[OK] [OK]を create] Binding] [OK] クリックします。 3.EditorにImport1が作成されます。 105 IBM Softw are Group | WebSphere software WS Importコンポーネントの作成(続き) 6 5 4 8 7 106 WS Importコンポーネントの名前を変更します。 《手順》 4.Import1を選択して、プロパティ・ビューを表示させます。 5.[Description] [Description]タブ タブの[Name] [Name]に”FSWSImport FSWSImport”と入力し、エンターキーを押します。 [Description] タブ [Name] FSWSImport 6.Assembly EditorにあるImport1がFSWSImportと変更されます。 7.次に[Binding] [Binding]タブ タブの[Browse] [Browse]ボタンをクリックします。 [Binding] タブ [Browse] 8.Select a WSDL file with binding/serviceウインドウが表示されます。 ※WS Importコンポーネントの名前の変更は必須ではありませんが、他のImportコンポーネントと区別するために便宜上変 更しています。 106 IBM Softw are Group | WebSphere software バインディング 1 3 2 107 WS Importコンポーネントにバインディング情報を設定します。 《手順》 1.Select a WSDL file with binding/serviceウインドウの[Choose [Choose a file]では file] [FortuneTellingServiceModule/ FSWSExport_FSInterfaceHttpPort]を選択します。 FSWSExport_FSInterfaceHttpPort] 2.FSWSExportにバインディング情報が追加されます。 Editorを保存します。 3.FortuneTellingServiceModuleにFSWSImport.importが作成されます。 107 IBM Softw are Group | WebSphere software コンポーネントのワイヤリング 2 3 1 3 ※ ドラッ ドラッグで表示の変更が可 グで表示の変更が可 能 能 108 サービス・コンポーネントからWebサービスImportコンポーネントへワイヤリングします。 ここではFortuneTellingServiceからFSWSImportへワイヤリングします。 《手順》 1.Assembly Editorのパレットからワイヤアイコンをクリックします。 2.FortuneTellingServiceをクリックします。 FSWSImportをクリックします。 3.ダイアログはキャプチャに従って1つめは[OK] [OK]、2つめは[NO] [NO]をクリックします。 [OK] [NO] 3の1つめでOKを選択したのでワイヤリングされるとFortuneTellingServiceには自動でリファレンスが作成されます。 ※ リファレンスの表示位置はドラッグで変更することができます。 Editorを保存します。 これで、FortuneServiceをWebサービスとしてインポートするアプリケーションが作成できました。 108 IBM Softw are Group | WebSphere software Mainクラスの作成 2 1 3 4 109 作成したアプリケーションのテストを行います。 《手順》 1.FortuneTellingServiceModuleからコンテキストメニューを表示させ、[New] [New] > [Package]を選択します。 [Package] 2.New Java Packageウインドウの[Name] [Name]に” [Finish]をクリックします。 [Name] ”test” test”と入力し、[Finish] [Finish] 3. 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、Main_Fortune Main_FortuneTelling Main_FortuneTellingServiceModule.java TellingServiceModule.javaをtest ServiceModule.java パッケージにドラッグします。 4.FortuneTellingServiceModule/testにMain_FortuneTellingServiceModule.javaが作成されます。 109 IBM Softw are Group | WebSphere software サーバーの始動 1 2 3 110 テストを行うためにWebSphere Process Serverを始動させます。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0 からコンテキストメニューを表示させ、 [Start]を選択します。 [Start] 3.StatusがStarted Startedになるまでしばらく待ちます。 Started ※ お使いの環境によってはStatusがStartedになるまでに非常に時間がかかる場合があります。 110 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加 1 3 4 2 111 WebSphere Process Server v6.0 にアプリケーションを追加していなければ追加します。 FortuneServiceModuleAppが追加されているか確認してください。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0からコンテキストメニューを表示させ、[Add [Add and remove projects… projects…]を選択します。 3.[Available [Available projects]からFortuneServiceModuleApp FortuneServiceModuleAppを選択して[Add] [Add]をクリックします。 projects] FortuneServiceModuleApp [Add] FortuneServiceModuleAppが[Configured [Configured projects]に移動します。 projects] 4.[Finish] [Finish]をクリックします。 [Finish] 111 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加(続き) 112 キャプチャのようにログの出力が終了するまで待ちます。 以下のログが出力されればOK です。 アプリケーションが始動されました:FortuneServiceModuleApp アプリケーションが始動されました:FortuneServiceModuleApp。 FortuneServiceModuleApp。 112 IBM Softw are Group | WebSphere software テスト 1 2 3 4 113 WS Importコンポーネントが正常にWS Exportコンポーネントを呼び出すことができるか J2SEアプリケーションとしてテストをします。 《手順》 1.Main_FortuneTellingServiceModuleクラスからコンテキストメニューを表示させ、[Run] [Run] > [Run… [Run…]を選択します。 起動構成ダイアログが表示されます。 [Configurations]のJava Applicationを選択して、[New] [New]をクリックします。 [Configurations] Java Application [New] 2.新しく作成されたMain_FortuneTellingServiceModule Main_FortuneTellingServiceModuleを選択して、[Classpath] [Classpath]タブ Main_FortuneTellingServiceModule [Classpath]タブを選択します。 タブ 3.[User [User Entries]に外部JARとしてcorona coronaEntries] corona-wsdl.jarを追加します。 wsdl.jar ※corona-wsdl.jarはC C:¥ WID¥ WID¥GM¥ GM¥runtimes¥ runtimes¥bi_v6¥ bi_v6¥libにあります。 lib 4.[App [Applly] y]をクリックして、[Run] [Run]をクリックします。 [App [Run] しばらくするとコンソール・ビューに結果が表示されます(次ページ)。 113 IBM Softw are Group | WebSphere software テスト(続き) 5 WS Im port FortuneSer viceModule WS Export 114 テストの確認をします。 ここではMain_FortuneTellingServiceModuleクラスがFSWSImportを通して 外部モジュールFortuneServiceModuleのFortuneServiceを呼び出しています。 《手順》 5.以下のように表示されればOKです。 <運勢(大吉、中吉、小吉、末吉、吉、凶、大凶のいずれか)> <メッセージ> これでJ2SEアプリケーションとしてのテストは終了です。 Assembly Editorを閉じます。 FortuneTellingServiceModuleを省略します。 114 IBM Softw are Group | WebSphere software テストクライアントの作成 1 3 ※ 4 2 5 6 115 テストクライアントとしてJSPを使用したテストを行います。 ここではDynamic Web ProjectとしてFortuneTellingServiceWebAppを作成してindex.jspを作成します。 《手順》 メニューの[File] [File] > [New] > [Other... [Other...] ...] を選択します。 2.Newウインドウの[Wizards] [Wizards]から[Web] [Web] > [Dynemic [Next]をクリックします。 [Wizards] [Dynemic Web Project]を選択し、[Next] Project] [Next] 3.New Dynamic Web Projectウインドウの[Name] [Name]に” [Name] ”FortuneTellingServiceWebApp” FortuneTellingServiceWebApp”を入力します。 4.Show Show Advancedボタン Add module to an EAR project.のチェックをはずし、[Finish] [Finish]をクリックします。 Advancedボタンをクリックして、Add ボタン project. [Finish] Confirm Perspective Switchダイアログでは Business Integration Perspectiveには移動せずに このままJava Perspectiveを使用するので[No] [No]をクリックします。 [No] パッケージエクスプローラー・ビューにFortuneTellingServiceWebAppプロジェクトが作成されます。 5.FortuneTellingServiceWebAppを展開します。 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、index.jsp index.jspを index.jsp FortuneServiceWebApp/WebContentにドラッグします。 6.FortuneTellingServiceWebApp/WebContentにindex.jspが作成されます。 115 IBM Softw are Group | WebSphere software テストクライアントの作成(続き) 1 2 3 116 Dynamic Web Projectにサービス・モジュールにあるクラスファイルを読み込ませるため、ビルドパスを設定します。 ここではFortuneTellingServiceModuleのビルドパスをFortuneTellingServiceWebAppに追加します。 《手順》 1.FortuneTellingServiceWebAppからコンテキストメニューを表示させ、[Properties] [Properties]を選択します。 [Properties] 2.Properties for FortuneTellingServiceWebApp ウインドウから[[Java Build Path] [Projects]タブ Path] の[Projects] [Projects]タブを選択し、 タブ FortuneTellingServiceModuleにチェックを入れ、[OK] [OK]をクリックします。 FortuneTellingServiceModule [OK] 3.しばらく待つとindex.jspについていたエラーが消えます。 116 IBM Softw are Group | WebSphere software Dependencyの設定 1 4 2 5 3 6 8 7 117 Webアプリケーションをサービス・モジュールに組み込みます。 ここではFortuneTellngServiceWebAppをFortuneTellingServiceに組み込みます。 《手順》 1.メニューから[Window] [Window] > [Open Perspective] > [Other... [Other...] ...] を選択します。 2. [Business Integration]を選択し、[OK] [OK]をクリックします。 Integration] [OK] ワークスペースがBusiness Integration Viewに変わります。 3. Business Integration ViewのFortuneTellingServiceModuleからコンテキストメニューを選択し、 [Open Dependency Editor]を選択してDependency Editorを開きます。 Editor] 4.J2EEのセクションをクリックして展開します。 J2EEのセクションが展開されます。 5.Addボタンをクリックします。 6.J2EE Project Selectionウインドウの[Select [Select a project]では” ”FortuneTelllingServiceWebApp” [OK]をクリックし project] FortuneTelllingServiceWebApp”と入力し、[OK] [OK] ます。 7.FortuneTellingServiceWebAppが組み込まれます。 8.一度FortuneTellingServiceWebAppを選択します。 [Advanced]の[On [Advanced] [On Build Path]のチェックをはずします。 Path] Editorを保存し、閉じます。 117 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加 1 3 4 2 118 WebSphere Process Server v6.0 に作成したアプリケーションを追加します。 ※サーバーが始動していない場合は始動させてください。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0からコンテキストメニューを表示させ、 [Add and remove projects… projects…]を選択します。 3.[Available [Available projects]からFortuneTellingServiceModuleAppを選択して[Add] [Add]をクリックします。 projects] [Add] FortuneTellingServiceModuleAppが[Configured [Configured projects]に移動します。 projects] 4.[Finish] [Finish]をクリックします。 [Finish] 118 IBM Softw are Group | WebSphere software アプリケーションプロジェクトの追加(続き) 119 キャプチャのようにログの出力が終了するまで待ちます。 以下のログが出力されればOK です。 アプリケーションが始動されました:FortuneTellingServiceModuleApp アプリケーションが始動されました:FortuneTellingServiceModuleApp。 FortuneTellingServiceModuleApp。 119 IBM Softw are Group | WebSphere software テスト 1 2 ※ 3 120 Webブラウザを使用してテストをします。 《手順》 1.Webブラウザを開き以下のアドレスを入力します。 http://localhost:9080/FortuneTellingServiceWebApp/index.jsp Fortune Telling Service Applicationが表示されます。 2.テキストフィールドに“今日 今日”と入力して、[ [占う] 今日 占う]ボタンをクリックします。 結果が表示されます。 3.以下のように表示されればOKです。 今日 の運勢は <運勢(大吉、中吉、小吉、末吉、吉、凶、大凶のいずれか)> <メッセージ> ※ 今日、昨日以外の文字を入力するとエラーが表示されます。 これでテストは終了です。 FortuneTellingServiceのWebアプリケーションを作成することができました。 Webブラウザを閉じます。 120 IBM Softw are Group | WebSphere software アプリケーションのアンインストール 1 3 2 4 121 WebSphere Process Server v6.0 から作成したアプリケーションをアンインストールします。 ※サーバーが始動していない場合は始動させてください。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0からコンテキストメニューを表示させ、[[Add and remove projects… projects…]を選択します。 3. [Remove All]をクリックします。 All] FortuneServiceModuleAppとFortuneTellingServiceModuleAppが[Available [Available projects]に移動します。 projects] [Finish] [Finish]をクリックします。 4.コンソール・ビューのログの出力が終了するまで待ちます。 121 IBM Softw are Group | WebSphere software サーバーの停止 1 2 3 122 テスト終了後、サーバーを停止させます。 《手順》 1.サーバー・ビューを表示させます。 2.WebSphere Process Server v6.0 からコンテキストメニューを表示させ、[Stop] [Stop]を選択します。 [Stop] 3.StatusがStopping Stoppingから StoppingからStopped からStoppedになるまでしばらく待ちます。 Stopped ※ お使いの環境によってはStatusがStoppedになるまでに非常に時間がかかる場合があります。 122 IBM Softw are Group | WebSphere software 第6章 WS Importの作成 要約 FortuneServiceSCAModule Stand-alone References R FortuneServiceModule I Stand-alone References SCA Import R I Java Component 1 FortuneTellingServiceModule I Stand-alone References I R Java Component 3 R I WS Import I Java Component 2 I SCA Export WS Export 123 第6章では以下の解説をしました。 ・WS ImportコンポーネントFSWSImportの作成 ・インポート・コンポーネントのバインディング ・サービスのワイヤリング ・J2SEとしてWS Importのテスト ・テストクライアントindex.jspの作成 ・Webブラウザを使用してのテスト お疲れ様でした。 これでWebSphere Integration Developerを使用して SCAアプリケーションFortune Telling Service Applicationを作成することができました。 123 IBM Softw are Group | WebSphere software 要約 要約 124 124 IBM Softw are Group | WebSphere software 要約 インターフェース、インプリメンテーションの作成と追加 コンポーネントの作成 ワイヤリング SCA Export / Importの作成 Webサービス Export / Importの作成 バインディング サーバーへのアプリケーション追加 テスト方法 125 当資料のハンズオンにより、以下のスキルが身につきました。 ・Interface Editorを使用してのインターフェースの作成 ・Assembly Editorを使用しての各コンポーネントの作成、インターフェースとインプリメンテーションの追加、ワイヤリング ・SCA Export / Importの作成とバインディング ・Webサービス Export / Importの作成とバインディング ・WebSphere Process Serverへのアプリケーションの追加 / アンインストール ・J2SE アプリケーションとしてのテスト ・インテグレーションテストクライアントとWeb Service Explorerを使用してのテスト 125 IBM Softw are Group | WebSphere software 付録 付録 126 126 IBM Softw are Group | WebSphere software 付録 SCADevGuideFiles.zipの使い方解説 Perspectiveの設定 Web Service Explorerのテスト時に出力されるメッセージ 127 付録として以下の項目を解説しています。 ・SCADevGuideFiles.zipの使い方解説 ・Perspectiveの設定 ・Web Service Explorerのテスト時に出力されるメッセージ 127 IBM Softw are Group | WebSphere software SCADevGuideFiles.zipの使い方1 1 2 3 ※ 128 ここでは本資料中で登場するファイルの使用方法について解説します。 ※ファーストステップでも書いてありますが、あらかじめWIDを使用する前に SCADevGuideFiles.zipを解凍しておきます。 SCADevGuideFiles.zip 解凍するとSCADevGuideFilesフォルダにmaterials materialsがあります。 materials ここでは解凍した後のmaterialsフォルダがC: C:¥ C:¥workareaにあるものとします。 workarea materialsフォルダの中に入っているフォルダは本資料の1章~6章に対応しています。 「 15ページで展開したSCADevGuideFiles.zipの展開先ディレクトリより、<ファイル名>を<作成する場所>にドラッグしま す。」と記述されている箇所は以下の手順でファイルを作成します。 《手順》 1.各章のフォルダから該当するファイルを選択します。 2.WIDのパッケージまでドラッグします。 3.ファイルが作成されます。 128 IBM Softw are Group | WebSphere software SCADevGuideFiles.zipの使い方2 1 ※ 2 3 4 129 ここでは何もモジュールを作成していない状態から完成したモジュールをインポートする方法について解説します。 ※あらかじめWIDを使用する前にSCADevGuideFiles.zip SCADevGuideFiles.zipを解凍しておきます。 SCADevGuideFiles.zip 解凍するとSCADevGuideFilesフォルダにDevGuideModules.zip DevGuideModules.zipがあります。 DevGuideModules.zip ここでは解凍した後のSCADevGuideFilesフォルダがC: C:¥ C:¥workareaにあるものとします。 workarea 《手順》 WIDが起動していなければ起動し、任意のWorkspaceを指定します。 ※ここではC: C:¥ C:¥ workarea¥ workarea¥ workspaces¥ workspaces¥SCADevGuideとします。 SCADevGuide 1.メニューから[[ File] > [Import]を選択します。 [Import] 2.Importウインドウの[Select [Next]をクリックします。 [Select an import source]で[Project source] [Project Interchange]を選択し、[Next] Interchange] [Next] 3.Import Project Interchange contentsウインドウの[From [From zip file]から[Browse] [Browse]をクリックして file] [Browse] C:¥ [開く] C:¥ workarea¥ workarea¥ SCADevGuideFiles SCADevGuideFiles¥ Files¥DevGuideModules.zipを選択し、[ DevGuideModules.zip 開く]をクリックします。 [Select All]をクリックして3つのモジュールと1つのプロジェクトを選択します。 All] [Finish]をクリックします。 [Finish] 4.Business Integration ViewにインポートしたModuleが表示されます。 129 IBM Softw are Group | WebSphere software Java Perspectiveの設定 Java Perspectiveでの設定 Capabilities view console server properties filters Java compiler 130 ここではJava Perspectiveで開発を行う際に設定しておくと便利な項目について解説します。 130 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 2 3 4 1 131 以下の設定を行います。 1.コンテキストメニューの表示設定 2.ビューの設定 3.パッケージエクスプローラー・ビューの表示フィルター設定 4.警告文の表示機能に関する設定 131 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 1 2 ※ 3 132 コンテキストメニューの項目の追加をします。 これは第4章でWebサービスの項目をコンテキストメニューで表示させるときに使用します。 《手順》 1.メニューから[Window] [Window] > [Preferences]を選択します。 [Preferences] 2.Preferencesウインドウから[Workbench] [Workbench] > [Capabilities]を選択し、[Web [Web Service Developer]にチェックを入れ、[OK] [OK]をク [Capabilities] Developer] [OK] リックします。 3.FSInterface.wsdlファイルで右クリックをしてコンテキストメニューを表示させると、Web Servicesの項目が追加されていま す。 ※ こちらは設定をする前のメニューです。 132 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 1 2 3 133 ビューの追加をします。 《手順》 1.メニューから[Window] [Window] > [Show View] > [Other… [Other…] を選択します。 2.[Basic] [Basic] > [Console]を選択し、[OK] [OK]をクリックします。 [Console] [OK] 3.コンソール・ビューが表示されます。 同様にメニューから [Basic] > [Properties] [Properties]と[Server] [Server] > [Servers]を選択します。 [Servers] それぞれコンソール・ビューとプロパティ・ビューとサーバー・ビューが表示されます。 133 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 1 3 4 2 134 表示フィルターの設定をします。 この設定はオプションとなります。 《手順》 1.パッケージエクスプローラー・ビューの丸で囲まれた[▼]をクリックしてメニューを表示します。 2.メニューから[Filters [Filters… [Filters…] を選択します。 3.Java Element Filtersウインドウの[Select [Select the elements to exclude [Referenced libraries]にチェックを exclude from the view]から[Referenced view] libraries] 入れ、[OK] [OK]をクリックします。 [OK] 4.ライブラリが非表示となります。 FortuneServiceModuleを展開してライブラリが表示されないことを確認してください。 134 IBM Softw are Group | WebSphere software Java Perspectiveの設定(続き) 6 7 135 警告文の表示機能をオフにする設定をします。 この設定はオプションとなります。 《手順》 メニューから[Window] [Window] > [Preferences]を選択します。 [Preferences] 6.[Java] [Java] > [Compiler]を選択し、[Unused [Unused Code]タブ [Compiler] Code]タブをクリックします。 タブ [OK]をクリックします。 [Unused imports] > [Ignore]を選択し、[OK] [Ignore] [OK] 7.Compiler Settings Changedダイアログは[Yes] [Yes]をクリックします。 [Yes] ビルドが終了するまでしばらく待ちつとプロブレム・ビュー内の警告文が表示されなくなります。 ※ この設定はコードに含まれる使われないインポート文の警告をプロブレム・ビューに表示する機能をオフにします。 135 IBM Softw are Group | WebSphere software Web Service Explorerで出力されるSOAP Envelope 1 2 4 3 136 Web Service Explorerのテストを行ったときに出力されるSOAP Envelopeの表示について解説します。 1.Web Service Explorerで結果を表示させます。 2.Statusバーをダブルクリックします。 Statusウインドウが最大に拡大表示されます。 3.[[Source] Source]をクリックします。 4.SOAP Request EnvelopeとSOAP Response Envelopeが表示されます。 136 IBM Softw are Group | WebSphere software SOAP Response Envelope (fault code) - <soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header /> - <soapenv:Body> - <soapenv:Fault> <faultcode>soapenv:Server.generalException</faultcode> - <faultstring> - <![CDATA[ org.xml.sax.SAXParseException: 繧ィ繝ャ繝。繝ウ繝医?繧ソ繧、繝?"SOAP-ENV:Envelop" 縺ッ譛溷セ?&繧後k邨ゆコ?ち 繧ー " </SOAP-ENV:Envelope>" 縺ィ荳?閾エ縺励∪縺帙s縲?Message being parsed: <?xml version='1.0' encoding='UTF-8'?> <SOAP-ENV:Envelope xmlns:q0="http://FortuneServiceModule/FSInterface" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <SOAP-ENV:Body> <q0:getFortune><day>莉頑律</day></q0:getFortune> </SOAP-ENV:Body> </SOAP-ENV:Envelop ]]> </faultstring> </soapenv:Fault> </soapenv:Body> </soapenv:Envelope> 137 こちらはSOAP Response Envelopeです。 137 IBM Softw are Group | WebSphere software ブランク・ページ 138 138