WebUIのデバッグ方法と新規追加

2011年6月24日(金)
久保田 大輔

第7回では、WebUIのデバッグ方法と、新しくWebUIを追加する方法について説明します。

WebUIのデバッグ方法

第6回ではEclipseのデバッグ機能を使って、AdempiereのJavaクライアントが行っている処理を確認する方法を説明しました。

今回は、AdempiereのWebUI(ユーザーインターフェース)をデバッグする方法を紹介します。

AdempiereのZK WebUIは、 JBossアプリケーションサーバーを起動した後、そのサーバーにブラウザでアクセスすることで表示できます。

図1:AdempiereのZK WebUI(クリックで拡大)

WebUIをデバッグするための準備

WebUIをデバッグするには、アプリケーションサーバーの起動時にデバッグ用の値を指定します。

Adempiereをインストールしたフォルダ(C:\Adempiereなど)にある、utils\myEnvironment.batファイルの中に書かれているADEMPIERE_JAVA_OPTIONS という変数に、

-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888

という値を追加してください。

追加した結果は以下のようになります。

@SET ADEMPIERE_JAVA_OPTIONS=-Xms64M -Xmx512M -DADEMPIERE_HOME=C:\Adempiere -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888

修正を保存したら、C:\Adempiere\utils\RUN_Server2.bat を使ってサーバーを開始してください。

WebUIのデバッグ

デバッグ用の引数を設定してJBossを起動したら、Eclipseのメニューから、Run > Open Debug Dialog を開いて、Remote Java Applicationのコンフィグレーションを新規作成してください。

図2:Remote Java Applicationのコンフィグレーションを新規作成する(クリックで拡大)

Connectタブにある、「Project」は、サーバーとして起動しているAdempiereと同じバージョンソースコードを設定してください。

「Connection Type」は、Standard (Socket Attach) を選択してください。

「Connection Properties」の「Host」はlocalhost、「Port」は8888を指定してください。

図3:Connectタブの設定

設定が終わったら、右下の「Debug」ボタンを押してください。EclipseのDebugウィンドウにサーバーに接続されたことを示す画面が表示されます。

図4:EclipseのDebugウィンドウ(クリックで拡大)

この状態でAdempiereのWebUIを操作すると、処理がブレークポイントに来た時に停止します。

第6回記事で使用した、

  • base\src\org\compiere\model\GridWindowVO.java
    67行目(createメソッド)
  • base\src\org\compiere\model\GridWindowVO.java
    201行目(createTabsメソッド)
  • base\src\org\compiere\model\GridTabVO.java
    53行目(createメソッド)
  • base\src\org\compiere\model\GridFieldVO.java
    78行目(createメソッド)

などのブレークポイントを有効にして、WebUIの左メニューからウィンドウを表示させようとすると、ブレークポイントで停止します。

ただし、第6回記事で、Javaクライアントの時に使用した、以下の位置のブレークポイントを有効にしても、WebUIの操作ではこれらのブレークポイントでは止まりません。

  • client\src\org\compiere\grid\tree\VTreePanel.java
    576行目(mouseClickedメソッド)
  • client\src\org\compiere\apps\AMenuStartItem.java
    147行目(runメソッド)
  • client\src\org\compiere\apps\APanel.java
    646行目(initPanelメソッド)

これはWebUIでは、

  • zkwebui\WEB-INF\src\org\adempiere\webui\window\ADWindow.java
  • zkwebui\WEB-INF\src\org\adempiere\webui\panel\ADWindowPanel.java

などの、ZK WebUI用のソースコードを使っているためです。

図5:ブレークポイントを設定してWebUIの処理内容を確認する

これらのファイルにブレークポイントを設定することで、WebUIの処理の内容を確認することができます。

以上で、WebUIのデバッグ方法の説明は終了です。

adempiere.jp

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています