辞書アプリケーション・サンプルのセットアップ

このサンプルには、アプリケーション・サーバーに辞書アプリケーションをデプロイするために必要な Java EE と Web プロジェクトが含まれています。このサンプルは、アプリケーションの変更とテストを行う方法を示します。

始める前に

  1. WebSphere® Application Server V7.0、V8.0、または V8.5 をインストールします。
  2. 辞書アプリケーションのサンプルをインポートします

このタスクについて

辞書アプリケーションは、辞書の 2 つの機能を実装する結合マッピング・アプリケーションです。実装される 1 つの機能である LOOKUP は、ユーザーが入力語に関連した辞書項目を検索するために用意されており、もう 1 つの機能である DEFINE は、ユーザーが辞書の既存の項目を更新したりまだ存在しない項目を追加したりするために用意されています。 辞書アプリケーションは、辞書をサーブレットとして実装します。 このサーブレットによって、LOOKUP および DEFINE のユーザー要求がデータベース接続マネージャーに転送され、辞書項目が含まれるデータベースでの操作が実行されます。

辞書アプリケーションのアーキテクチャー

辞書アプリケーションは、モデル・ビュー・コントローラー (MVC) アーキテクチャーを実装するために、データベース・アダプターである DictionaryJDBCAdapter.java をモデルとして実装し、showentry.jsp をビューとして実装し、DictionaryServlet.java をコントローラーとして実装します。ユーザーが辞書サーブレットのエントリー・ポイントから辞書アプリケーションにアクセスするとき、ユーザーは、必ず DictionaryServlet.java クラスに送られます。 そこから、DictionaryServlet.java は、ユーザーによって指定される要求を、データベース・アダプター DictionaryJDBCAdapter.java に委任されるタスクとして処理します。 DictionaryJDBCAdapter.java クラスがタスクを完了した後、辞書サーブレットは結果を showentry.jsp に転送し、そこで適切な応答が編成されてユーザーに送り返されます。

特に、DictionaryApp プロジェクトの DictionaryJDBCAdapter.java クラスでは、JNDI 名が jdbc/DictionaryDB であるデータ・ソース・オブジェクトに対して JDBC 照会形式の SQL コマンドを呼び出すことにより、LOOKUP および DEFINE が実装されています。 DictionaryApp が WebSphere Application Server にデプロイされると、サーバーは、DictionaryServlet.java の中で、JNDI 名が jdbc/DictionaryDB である DataSource オブジェクトと実際のデータ・ソース・リソースをマップする操作を試みます。 その後この参照は DictionaryJDBCAdapter.java クラスに渡され、データベース・アダプターのデータベース接続が設定されます。 辞書の項目を保持するデータベースの作成と、アプリケーション・サーバーとそのデータベース間を接続する役割を持つデータ・ソースの作成が必要になります。 WebSphere Application Server には、リレーショナル・データベース管理システムとして Derby が組み込まれています。 データベース・リソースが必要になる場合、アプリケーションで Derby データベースを使用するように構成できます。

サーバー上でサンプルを実行してテストするには、以下のステップを行います。

手順

  1. Derby データベースを作成する場合、DictionaryDatabase プロジェクトを展開し、DictionaryDatabase.zip ファイルをダブルクリックします。
    1. Windows アイコン: データベースを WebSphere Application Server のインストール・フォルダーにある /derby/databases フォルダーに解凍します。
    2. Linux アイコン: データベースを WebSphere Application Server のインストール・フォルダーにある /derby/databases フォルダーに解凍します。
      • このデータベース・ディレクトリーに非 root ユーザーのアクセス権限を付与します (everyone アクセスを付与する最も簡単な方法は次のとおりです。chmod ugo+x databases)。
      • 使用している root 以外のユーザーに、unzip 後のデータベースに対する書き込み権限を付与します。 (最も簡単な方法は root 以外のユーザーとして unzip することですが、この方法はデータベース・ディレクトリーに対するアクセス権限がユーザーに付与されている場合に有効です)。
      重要: WebSphere Application Server のタイプによっては、/derby/databases のデフォルトの場所が異なることがあります。デフォルトのインストール・ディレクトリーについて詳しくは、WebSphere Application Server の作成を参照してください。
  2. 辞書データベース・アプリケーションを作成した後、データ・ソース DictionaryDatasource を構成することにより、アプリケーション・サーバーが辞書データベース・アプリケーションにアクセスする方法を指定できます。 データ・ソースの構成設定で指定した具体的な名前をメモしておいてください。 これらの名前は辞書データベース・アプリケーションのために指定するバインディングと一致する必要があるためです。 WebSphere Application Server 管理コンソールを使用して「DictionaryDatasource」を構成するには、次のようにします。
    1. 「サーバー」ビューを選択します。 ターゲット・サーバーを右クリックし、「管理」 > 「管理コンソールの実行」を選択します。
    2. 左側のナビゲーション・パネルで、「リソース」 > 「JDBC」 > 「データ・ソース」を展開します。
    3. 「データ・ソース」ページで、「すべての有効範囲」というラベルが付いたドロップダウン・メニューを展開します。 このメニューには、データ・ソースを作成できるすべての有効範囲のリストがあります。 該当するサーバー名 (server1 など) が含まれる有効範囲の中で、最も有効範囲が狭いものを選択します。 表の左上で「新規作成」をクリックし、新しいデータ・ソースを追加します。 「基本データ・ソース情報の入力」ページの「データ・ソース名」フィールドで DictionaryDatasource と入力し、「JNDI 名」フィールドで jdbc/DictionaryDB と入力してから、「次へ」をクリックします。
    4. 「JDBC プロバイダーを選択」で「既存 JDBC プロバイダーを選択」を選択し、データ・ソース用の適切な JDBC プロバイダーを選択します。 このサンプルでは、ドロップダウン・メニューから「Derby JDBC プロバイダー」を選択し、「次へ」をクリックします。
    5. 「データ・ソースのデータベース特定プロパティーを入力」の「データベース名」フィールドに、プロジェクトをインポートした後に抽出したデータベースのパスと名前 (例えば、C:¥WASV85¥IBM¥WebSphere¥AppServer¥derby¥databases¥DictionaryDatabase) を入力し、「次へ」をクリックします。
    6. 「セキュリティー別名のセットアップ」ページで、必要に応じてセキュリティー設定を選択します。 これらの設定は、アプリケーションがデータ・ソースにアクセスする方法を決定します。 辞書アプリケーションの場合、デフォルトを受け入れて「次へ」をクリックし、「要約」ページで「終了」をクリックしてから「保存」をクリックします。
    7. 「データ・ソース」ページで「DictionaryDatasource」を選択し、「テスト接続」をクリックして、データ・ソースが正常に作成されたかどうかを確認します。
  3. 辞書アプリケーションのサンプルをテストするには、次のようにします。
    1. 「DictionaryWeb」 > 「WebContent」を展開します。showentry.jsp を右クリックし、「実行」 > 「サーバーで実行」を選択します。 使用するターゲット・ランタイム・サーバーを選択します。
    2. ワークベンチのデフォルト・ブラウザーでアプリケーションが開始します。 「Enter Word」フィールドに IBM と入力し、「LOOKUP」をクリックします。 INTERNATIONAL BUSINESS MACHINES という応答が「Enter definition:」フィールドに表示されます。
      辞書の出力
  4. showentry.jsp を変更するには、showentry.jsp を右クリックし、「アプリケーションから開く」 > 「Page Designer」エディターを選択します。 表の中で Enter definition: を含む行を見つけ、DEFINE のラベルが付いた入力ボックスにスタイル属性 color: blue; を追加し、CNTL+S を押して保存します。
    コード変更
  5. サーバー上でサーブレットを再び実行すると、ボタンが青で表示されます。
    青い辞書出力

フィードバック