レッスン 4

exteNd Directorプロジェクトの作成

 
Top of page

このレッスンの内容

 
Top of section

exteNd Directorとは

exteNd Directorは上質で独自性あるWebアプリケーションを速やかに納品、および容易に保守できるようにした相互ポータルサーバです。exteNd Directorは、ユーザがポータルを介してアクセスする、最先端でインタラクティブなアプリケーションを開発するための総合的な開発環境を提供します。

 
Top of section

目的

このレッスンでは、ユーザにユーザIDの入力を即すフォームを提示して展開したWebサービス(Composer ViewUserInfo)を呼び出す簡単なアプリケーションを作成します。 アプリケーションは、ユーザデータかメッセージのどちらかが返されたかによって、2つあるフォームの内1つを選び、その結果を表示します。 アプリケーションは、ポータルアプリケーションのパーソナルページにあるポートレットとして実行します。 アプリケーションを完成させた後は、そのアプリケーションをテストする機会があります。

 
Top of section

実行する内容

  1. ウィザードを使用したWebサービスページフローの作成

  2. 補足 : exteNd Directorアプリケーションのリソースセット

  3. 作成したデフォルトページフローのテスト

  4. 追加XFormの編集

  5. ページフローへの新規フォーム追加

  6. ページフローに新規フォームを追加するためのリンクの変更

  7. 修正されたぺージフローのテスト

 
Top of section

エクササイズ 4-1: ウィザードを使用したWebサービスページフローの作成

このエクササイズでは、exteNd Directorウィザードを使ってページフローを作成します。ページフローは、exteNd Director生成物でプレゼンテーションとデータバインド用の各XFormをWebサービスを実行するために結びつけます。 ウィザードは、Webサービスのスキーマに応じてXFormを作成し、それらのフォームをWebサービスの実施のため1つにまとめます。 コードを記述する必要なく、これらのすべてを行なうことができます。

  1. 新規ファイル]アイコンをクリックします。NewFileIcon

  2. [新規ファイル]ダイアログボックスで、[ポートレット]タブを選択します。

  3. Webサービスページフロー」ウィザードを選択します。

    DirectorNewFilePortletDialog

  4. OK]をクリックします。 Webサービスページフローウィザードをが表示されます。

  5. [ベース名]に「UserInformation」 と入力します。

  6. ユーザインタフェースを作成するWSDLドキュメントを選択します。 選択する方法は2通りあります。

    リソースセット]ボタンをクリックして、exteNd ComposerプロジェクトのWDSLが保存されている場所まで移動します。 [ファイルの選択]ダイアログボックスで、「ViewUserInfo.wsdl」ファイルが見つかるまでフォルダを展開します。 「ViewUserInfo.wsdl」ファイルを選択します。 [OK]をクリックします。

  7. デフォルトでチェックがオンになっている[CSSレイアウトの使用]と[デフォルトのWSRP CSSクラスを使用する]は、そのままにしておきます。

    DirectorCreateWebServicePageflow dialog1

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

  9. このWSDLではたった一つの操作しか行いませんので、[Webサービスメソッドの選択]ダイアログボックス内で、デフォルト値はすべてそのままにし、[次へ]をクリックします。

    DirectorCreateWebServicePageflow dialog2

  10. exteNd Directorプロジェクトにはリソースセットが1つしかありませんので、[リソースセット]ダイアログボックスでは[次へ]をクリックします。

    DirectorCreateWebServicePageflow dialog3

  11. [書式設定コントロール]タブで、カラム数として「2」を選択します。

  12. ラベルの整列では、[]を選択します。

    DirectorCreateWebServicePageflow dialog4

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

  14. フォームとページフローの作成が完了しました]メッセージダイアログで、[OK]をクリックします。

    DirectorWebServiceFormsPageFlow

  15. [パーセント]ドロップダウンリストPageflowEditor SizeAdjustmentを使用して、エディタ内のページフロー図のサイズを調節します。 大きさと読みやすさの両方を考えると、100%が適切なサイズになります。

    DirectorWebServiceFormsPageFlow2

 
Top of section

エクササイズ 4-2: 補足 : exteNd Directorアプリケーションのリソースセット

exteNd Directorリソースセットは、exteNd Directorサブシステムが使用する記述子および他のファイルをまとめ、開発中に動的なロードを提供し、頻繁な再配備を防いでテストを高速化します。 それぞれのカスタムWebアプリケーションには、リソースセットを含めることができます。

リソースセットは、アプリケーション定義のリソースとクラスを保持します。 これらのリソースのいくつかは、ルールや、XForm、ページフロー、またはポートレット記述子など、サブシステムの機能を使用するためのテンプレートまたは定義です。 その他は、ルールとユーザ間のバインドなど、サブシステムがともに機能する方法を指定します。 リソースは通常XMLファイルで、Javaクラスを伴うものもあります。

リソースセットは、アプリケーションのリソースを既知のディレクトリ構造に沿って整理し、そしてプロジェクトの様々な生成物をナビゲーションペインの[リソース]タブを使って見つけることができるよう、exteNd Director 内で整理します。 たとえば、前回のエクササイズで作成したファイルをすべて検索する場合は、次を実行します。

  1. ナビゲーションペインの[リソース]タブを選択します。

    ResourcesNavigationPanel

  2. 検索]タブを選択します。

  3. [ファイル名]テキストボックスに、「UserInfo」と入力します。

  4. 検索]ボタンをクリックします。

    ResourcesNavigationSearchTab

  5. 後に検索条件を再利用できるよう、この検索をビューとして保存することが可能です。 [保存]ボタンをクリックします。

  6. ファイルを「UserInfoStuff.xml」と名付け、[保存]をクリックします。

    ビューは、検索条件と表示の構造を説明したXMLファイルで、必要に応じて編集することができます。

  7. [エディタタイトル]タブをクリックして、開いているエディタを終了し、「UserInfoStuff.xml」ファイルを閉じます。

  8. 表示]タブを選択します。

  9. ドロップダウンリストで[UserInfoStuff]を見つけたら、それを選択します。

    ResourcesNavigationSearchTab2

    フォルダを展開すると、今までに作成した様々な生成物を表示できます。表示された生成物のうちどれかをダブルクリックすると、その生成物とともにそれに適したエディタが開きます。

    For more information    詳細については、『Developing exteNd Director Applications』のexteNd Directorアプリケーションでのリソースセットの使用に関する章を参照してください。

 
Top of section

エクササイズ 4-3: 作成したデフォルトページフローのテスト

Webサービスページフローウィザードで作成されたページフローとXFormは、リソースセット内に保存されています。アプリケーションはすでに展開されているため、作成されたデフォルトのポートレットはすぐにテストすることができます。 これは、デフォルトでexteNd Directorプロジェクトが動的にリソースセット生成物をロードするよう、開発の際に設定されたためです。

  1. ブラウザウィンドウを開きます。

  2. URLに「http://localhost/RequestUserInfo/portal/portlet/LoginPortlet」と入力します。

  3. ポータルのログインページで、[新規ユーザ?]リンクをクリックします。

    PortalLogin

  4. 新規ユーザを作成するために情報を入力します。たとえば、次のように入力します。

  5. 作成]をクリックします。

  6. 続行]をクリックしてログインページに戻ります。

  7. たった今作成したアカウントを使ってログインします。 [ログイン]をクリックするか、<Enter>キーを押します。

    いくつかのポートレットとともにデフォルトのポータルシェアページが表示されます。 パーソナルページを作成し、そこに作成したページフローのポートレットを保存します。 このページは、後にこのレッスンで変更をテストおよび確認するために使用します。

    DefaultPortal inIE

  8. パーソナライズ]リンクをクリックします。

    PortalPersonalize IE

  9. パーソナルページリストの[新規]をクリックして、新規のパーソナルページを作成します。

  10. ページの名前を「User Info Test」に変更し、[更新]をクリックします。

    PortalPersonalize 2 IE

  11. [デフォルトページ]ドロップダウンリストで、先ほど作成したページ名を選択します。

  12. 現在のページとして設定]をクリックします。 これで、ポータルページ内のこのページへすばやく移動することができます。

    PortalPersonalize DefaultPage

  13. コンテンツの選択]リンクをクリックします。

  14. [使用できるポートレット]リストを、[UserInformationPageflow]が見つかるまでスクロールし、それを選択して[追加]をクリックします。

    PortalPersonalize ChosePortlet

  15. [閉じる]をクリックします。

  16. ポータル]リンクをクリックします。

  17. ページ上部の[ポータルホーム]をクリックするか、またはパーソナルページの[User Info Test]をクリックして、先ほど作成したページフローポートレットを表示します。

  18. このポートレットは時間通りに応答しませんでした」というメッセージが表示されたら、RestartsCurrentPageflowLinkリンクをクリックするか、[ポータルホーム]またはパーソナルページの[User Info Test]をクリックして、このページを更新します。

    PortalWithLabPortletOnIt

  19. UserInformationInputポートレットページの[ユーザID]テキストボックスに「SSpade」と入力し、[要求の送信]ボタンをクリックします。

    PortalWithLabPortletOnIt 2

  20. 新規要求]ボタンをクリックして最初のフォームへ戻ります。

  21. [ユーザID]テキストボックスに「SP」 と入力し、[要求の送信]ボタンをクリックします。

    何のメッセージも表示されないことがわかります。

  22. 新規要求]ボタンをクリックして最初のフォームへ戻ります。

    exteNd Application Serverコンソールを覗いてみると、exteNd Composerサービスからのログ出力でアプリケーションへ返されたデータが表示されているのを確認できます。

    ApplicationServerConsole

    ウィザードで作成されたフォームとページフローでは、無効な結果がでた場合に使うフォームを考慮に入れていなかったので、ぺージフローを変更する必要があります。 ページフローにどのフォームを表示するかを状況判断するプロセスを加えます。その決定は実行されたWebサービスから返されたデータに基づいて行ないます。 これが、このレッスンでの残りのタスクとなります。

 
Top of section

エクササイズ 4-4: 追加XFormの編集

無効な要求があった場合にWebサービスから返されたメッセージを表示するフォームは既に作成されています。 このフォームを見直し、若干の変更を加えます。 次のエクササイズでは、Web Service Pageflowウィザードを使い、先ほど作成したページフローにこのフォームを挿入します。

  1. exteNd Directorで、ナビゲーションペインの[リソース]タブDirectorResourcesTabを選択します。

  2. ナビゲーションペインの[リソース]ビューで[表示]タブを選択し、ドロップダウンリストから先ほど作成した[UserInfoStuff ]を選択します。

  3. [フォーム]フォルダが見つかるまでexpandIconアイコンをクリックし、リストされているフォルダを展開します。

  4. UserInformationResponse_Message.xhtml]をダブルクリックし、XFormsエディタ内でフォームを開きます。

    DirectorXFormsEditor

    [入力メッセージ]テキストボックスから(表示のみの) [出力]テキストボックスへ変更することで、このフォームの外観を変更します。

  5. レイアウト領域]を選択し、マウスをクリックしたまま下方向へマウスを移動してサイズを大きくします。

    XFormsLayoutRegionExpanded

  6. フォーム上の[送信]ボタンをクリックし、<Delete>キーを押して削除します。

  7. XFormsの出力を挿入する]ボタンXFormsOutputTypeButtonをクリックします。

  8. メッセージ]テキストボックスの下側をクリックして[出力]コントロールを追加します。

    XFormsAddingOutputTypeToLayout

    XFormsAddedOutputTypeToLayout

  9. 入力メッセージ]テキストボックスを選択し、<Delete>キーを押して削除します。

  10. 出力]テキストボックスを選択して、[New output]ラベルの下へドラッグします。

  11. <Ctrl>キーを押しながらラベルとテキストボックスを選択し、両方をレイアウトエリアの上部へ向かってドラッグします。

  12. 整列/配置]タブを使ってレイアウト上のコントロールを正しく整列させます。

    XFormsAlignToolbar

    XFormsOutputAligned

  13. 保存]アイコンFileSaveToolbarIconをクリックして変更を保存します。

  14. [出力]テキストボックスをクリックし、角を右下へドラッグしてサイズを大きくします。

  15. インスタンスデータペインで、Messageエレメントが見つかるまでexpandIconアイコンをクリックします。(スクロールする必要があるかもしれません。)

  16. Messageエレメントをクリックし、マウスをクリックしたまま、そのエレメントをフォームペインの[出力]テキストボックスへドラッグします。

    XFormsOutputWithData

  17. 保存]アイコンFileSaveToolbarIconをクリックして変更を保存します。

  18. プロパティインスペクタの[出力(ラベル)]タブを選択して上部までスクロールし、ラベルの表示を「メッセージ:」に変更します。

    XFormsOutputNewLabel

  19. 保存]アイコンFileSaveToolbarIconをクリックして変更を保存します。

  20. XFormsエディタのフォームレイアウトとインスタンスプロパティ部分を分けているディバイダをクリックし、フォームレイアウトセクションの[ツール]タブにあるすべてのアイテムが表示されるよう、フォームレイアウトを拡大します。

    ヒント:   これが上手くいかない場合は、タブ上のXFormツールすべてが表示されるよ うになるまで、クリックしたままの状態でディバイダを右へドラッグします。

    XFormsEditorToolbar

  21. [ページフローリンク領域を挿入する]ボタンXFormsPageflowRegionButtonをクリックします。

  22. フォームレイアウト内をクリックして、フォームにコントロールを追加します。

    XFormsEditorLayoutArea

    既存のページフローにこのページが追加されると、ページフローボタンリンクによってこの領域が使用されるようになります。

    XFormsOutputDone

  23. 保存]アイコンFileSaveToolbarIconをクリックして変更を保存します。

 
Top of section

エクササイズ 4-5: ページフローへの新規フォーム追加

このエクササイズでは、メッセージ表示ページを既存のページフローへ追加し、アプリケーションフローの一部として含まれるよう、このページのリンクを変更します。 リンクの中には、情報ページあるいはメッセージページのどちらを表示すべきかを決定するため、Webサービスからどんな結果を受け取ったかチェックするリンクがあります。 目的は、現在のアプリケーションのフローを、次に示したフローからそのすぐ下に示すフローへ変更することです。

元のページフロー

UserRequestPageFlow start

目標とするページフロー

UserRequestPageFlow final

  1. exteNd Director編集ペインで、[UserInformationPageflow.xml]ファイルを選択します。 UserInformationPageflow.xmlが、ページフローモデラー内で開きます。

    PageflowEditor

  2. ページフローモデラーの[アクティビティ ]タブを選択します。

    PageflowEditorActivitiesToolbar

  3. フォームアクティビティPageflowEditorFormActivityButton ツールバーボタンをクリックします。

  4. ページフローダイアグラムのHelp HTMLアクティビティの右側へマウスポインタを移動しマウスをクリックしてフォームを追加します。

    PageflowEditorAddingFormToDiagram

  5. ダイアグラムに配置したフォームアクティビティの下に追加されたラベルをクリックして、ラベルの表示を「メッセージ」に変更します。

  6. ダイアグラムに加えた[フォームアクティビティ]をダブルクリックして、このアクティビティのプロパティインスペクタを開きます。

    PageflowEditorPropertyEditor Form

    ダイアグラムや表示が必要な他のエディタ部分を隠さないよう、このウィンドウはデスクトップ上のもっと使いやすい位置に移動してもかまいません。

  7. [名前]テキストボックスに「メッセージ」 と入力します。

  8. フォーム]タブをクリックします。

  9. [フォーム]タブの[XHTML]テキストボックスの隣にあるellipseButtonボタンをクリックします。

  10. [スコープXPathの選択]ダイアログで、ドロップダウンリストから[リソースセット]を選択し、[参照]ボタンをクリックします。

  11. XPathナビゲータで、expandIconボタンをクリックして、リソースセットとフォームリストを開き、[UserInformationResponse_Message.xhtml]ファイルを選択します。

    XPathNavigator SelectForm

  12. OK]をクリックします。

  13. 保存]アイコンFileSaveToolbarIconをクリックして変更を保存します。

  14. インスタンスデータ]タブをクリックします。

    InstanceData Setup1

  15. 着信ドキュメント]の隣にあるellipseButtonボタンをクリックします。

    InstanceData Setup2

  16. プライマリデータ]テキストボックスの隣にあるellipseLargeButtonボタンをクリックします。

    InstanceData Setup3

  17. [スコープXPath]ドロップダウンリストをクリックし、[/Flow/document/RESPONSE]を選択します。

  18. OK]をクリックします。

  19. 保存]アイコンFileSaveToolbarIconをクリックして変更を保存します。

 
Top of section

エクササイズ 4-6: ページフローに新規フォームを追加するためのリンクの変更

通常のアプリケーションフローの一部として新規フォームを加えるため、リンクを変更します。 Webサービスは、どちらのフォームを選ぶかを決定するため、リンクに付け加えられた条件と共に両方のフォームへ到達します。 新規メッセージフォームは、アプリケーションのループ条件を終了して、入力フォームにリンクします。

  1. ぺージフローモデラーの[リンク]ツールバーを選択します。

    PageflowEditorLinksToolbar

  2. ボタンリンク]ボタンをクリックします。PageflowEditorButtonLinkButton

  3. メッセージフォーム]アクティビティをクリックし、[入力フォーム]アクティビティの方へドラッグします。そしてクリックをして、この2つのアクティビティ間にリンクを作成します。

    PageflowEditor ButtonLinkBetweenForms

  4. 先ほどダイアグラムに加えたリンクをクリックし、選択します。

  5. [ボタンリンク]タブのプロパティインスペクタで、[説明]を「New Request」に変更します。

    これは、ブラウザでこのページが表示された時に、ボタンのテキストとして表示されます。

  6. リンク]ボタンをクリックします。PageflowEditorLinkButton

  7. [Webサービス]アクティビティをクリックし、[メッセージフォーム]アクティビティの方へドラッグします。そしてクリックをして、この2つのアクティビティ間にリンクを作成します。

    PageflowEditor LinkBetweenActivities

  8. [出力フォーム]アクティビティの隣にあるラベルを「ユーザ情報」に変更します。

  9. 保存]アイコンFileSaveToolbarIconをクリックして変更を保存します。

  10. [Webサービス]アクティビティと[メッセージフォーム]アクティビティ間のリンクをクリックします。

  11. プロパティインスペクタで、[リンク]タブの[式の編集]リンクPageflowEditorPropertyEditor EditExpressionLinkをクリックします。

  12. [式]ダイアログの[Scoped Path]テキストボックスで、(句読点と大文字小文字に気をつけながら、)次の式を入力します。

      /Flow/document/RESPONSE/*[local-name()=\qUserInfoResponse\q]/*[local-name()=\qMessage\q] 
    
  13. [演算子]ドロップダウンリストで、[はnullです]を選択し、[Not]チェックボックスをオンにして[追加]ボタンをクリックします。

    PageflowEditor ExpressionDialog

  14. OK]をクリックします。

  15. プロパティインスペクタの[リンク]タブで、[優先順位]テキストボックスに「1」が入力されていることを確認します。

  16. [Webサービス]アクティビティと[ユーザ情報]アクティビティの間のリンクをクリックします。

  17. プロパティインスペクタの[リンク]タブで、[優先順位]テキストボックスに「2」が入力されていることを確認します。

  18. 保存]アイコンFileSaveToolbarIconをクリックして変更を保存します。

 
Top of section

エクササイズ 4-7: 修正されたぺージフローのテスト

新しく作成したページをページフローに加えるよう変更したので、次はアプリケーションサーバでこの修正されたページフローをテストします。 exteNd Directorには動的ロード機能があるため、修正したフォームとページフローはすでに自動的にアプリケーションへロードされています。変更箇所のテストに必要なのは、ブラウザを開いてポータルアプリケーションへログインすることだけです。

  1. ブラウザウィンドウを開きます。

  2. URLに「http://localhost/RequestUserInfo/portal/portlet/LoginPortlet」と入力し、<Enter>キーを押します。

  3. 次のようにログインします。

  4. パーソナルページリストの[User Info Test]リンクをクリックします。

  5. UserInfomationInputページの[ユーザID]テキストボックスに、「SSpade」と入力して[Submit Request]ボタンをクリックします。

    UserRequestPageFlow UserInfo

  6. 新規要求]ボタンをクリックします。

  7. [ユーザID]テキストボックスに「SP」 と入力し、[Submit Request]ボタンをクリックします。

    UserRequestPageFlow Message

  8. 新規要求]ボタンをクリックします。

    UserRequestPageFlow Input

  9. ファイル]>[終了]の順に選択してexteNd Directorを終了します。

以上で作業は完了です。 『ガイドツアー』の内容はすべて終了しました。

 
Top of page

概要

『ガイドツアー』の中で、exteNd 5 Suiteの開発機能を利用し次のことを行いました。

要するに、Webサービスの作成からWebサービスの利用まで、すべてを1つの統合ツールセットによって達成したわけです。 アプリケーション全体は、堅牢なJ2EEアプリケーションサーバにより提供されています。 しかもJavaコードをいっさい記述することなく、Java技術の利用を可能にしています。

このWebサービスアプリケーションを今後も開発しつづけるとすれば、次のステップは、照会のみを行なうのアプリケーションから、保守と照会を行なうアプリケーションへと進むことでしょう。 しかしこの課題については、別の機会に取り組むことにしましょう。

さらに詳しく知るには   Novell exteNdについての詳細は、このヘルプシステムにある『Novell exteNdへようこそ』の「学習リソース」ページを参照してください。



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