Powered by SmartDoc

アプリケーションの起動とデバッグ

WebObjectsアプリケーションを起動して、Eclipseの中でも極めてクールな機能を体験してみましょう。

  1. WebObjectsアプリケーションを起動するには、プロジェクト名の上で右クリックメニューを開き、「Run As」>「WOApplication」を選択します(図9.1[「Run As」メニュー])。しかし、これではあのクールな機能の数々を使ったことにはなりません。なんと、ソースコードを変更するとすぐに起動中のアプリケーションに反映されるのです。というわけで、まだ起動しないでください:-)

    図: 「Run As」メニュー

    「Run As」メニュー
  2. 「Run As」の代わりに、「Debug As」>「WOApplication」を選択します(図9.2[「Debug As」メニュー])。ここでMikeからのお達しです:「画像は「WOApplication (profiled)」を選択してるでしょ?実はこれミスったんだけど、撮り直すのが面倒くさかったんだ:-)」

    図: 「Debug As」メニュー

    「Debug As」メニュー
  3. Eclipseは起動するクラスを探し始めます(図9.3[起動するクラスの検索])。

    図: 起動するクラスの検索

    起動するクラスの検索
  4. 「Application」クラスを起動に使うため、上部のフィールドに「Application」と入力し、「OK」をクリックします(図9.4[起動クラスの選択])。起動用のクラスは、Run/Debugの設定画面でいつでも変更できます。

    この作業を飛ばしてとっとと先に進みたいなら、パッケージエクスプローラのApplicationクラスを選択し、右クリックメニューから「Run As」>「WOApplication」を選択してください。

    図: 起動クラスの選択

    起動クラスの選択
  5. WebObjectsアプリケーションが起動し、ウィンドウ下のコンソールビューで標準出力(赤のテキスト)と標準エラー出力(青のテキスト)が表示されます(図9.5[組み込みブラウザで表示])。さらに、Eclipseは組み込みブラウザでMainコンポーネントを表示します。

    ソー クーール!

    でも、ブラウザはいつものを使うことにしましょう。

    図: 組み込みブラウザで表示

    組み込みブラウザで表示
  6. 「Window」メニューから「Preferences...」を選択します(図9.6[「Window」>「Preferences...」を選択])。

    図: 「Window」>「Preferences...」を選択

    「Window」>「Preferences...」を選択
  7. 「General」>「Web Browser」を選択し、「Use internal Web browser」を「Use external Web Browser」に変更します(図9.7[ブラウザの変更])。「Apply」をクリックしてから「OK」をクリックします。

    図: ブラウザの変更

    ブラウザの変更
  8. アプリケーションを停止します。コンソールビューの右側に赤い四角のボタンがあるので、これをクリックします。コンソールビューのタイトルバーに「<terminated>」と表示され、赤い四角のボタンはグレーに変わります。コンソールビューのテキストをすべて消す場合は、Xのアイコンをクリックします。
  9. 再びデバッグするときには、デバッグ用のアイコンを使いましょう。Eclipseのアイコンバーの二つめのグループに、虫(細菌?)と再生ボタンのようなアイコンが並んでいます。これがデバッグと起動のボタンです。アイコンの隣にある下向きの矢印をクリックすれば、最近使用した起動の設定のリストが表示されます。最後に使った設定で起動したければ、デバッグ・起動アイコンをクリックします。

    WebObjectsのプロパティ、コマンドラインで与えるパラメータ、Java VMのオプションなどを変更する場合は、下向きの矢印をクリックして「Debug...」か「Rub...」を選択します。様々なパラメータを設定するウィドウが開きます。

  10. 再度デバッグするため、Debugアイコンをクリックします。先程と同じようにコンソールビューにログが出力されますが、今度はデフォルトのWebブラウザでMainコンポーネントが表示されます(図9.8[デフォルトのブラウザで表示])。

    図: デフォルトのブラウザで表示

    デフォルトのブラウザで表示
  11. それではHot Code Replacementの威力を見てみましょう。Hot Code Replacementとは、ソースコードの変更を実行中のアプリケーションに再実行することなく反映させる機能です。Eclipseに戻り、アプリケーションはそのまま実行させておきます。

    ここで使っているMainコンポーネントではnow()メソッドから取得した現在日時を表示していますが、そのnow()メソッドを特定の日時を返すように変更します(図9.9[ソースコードを変更する])。Eclipseはすぐにコンパイルし、すぐに実行中のアプリケーションに変更を反映させます。

    図: ソースコードを変更する

    ソースコードを変更する
  12. ブラウザをリロードしてみてください。もう変更されているでしょう?(図9.10[ソースコードの変更の反映後])。ただし、Hot Code Replacementには構造的な変更は扱えないという制限があります。メソッドやフィールドの追加・削除までは反映できません。ただし、メソッドの実装の変更なら大抵の場合は動作します。この機能が、「実行、操作、停止、修正、実行、操作、停止、修正…」のサイクルを打ち破って開発を加速させることがわかるでしょう。これからは「実行、操作、修正、リロード」の時代です。

    図: ソースコードの変更の反映後

    ソースコードの変更の反映後