1. Eclipseのインストール

Eclipseのインストールについての詳細な説明はここでは行いません。EclipseWiki等のサイトを参考にインストールしてください。またEclipse本体やの日本語化や、よく使われるプラグインの日本語化とインストール等も自動的に行ってくれるAll-In-One Eclipseというインストーラを作成しているプロジェクトも存在しますので、そちらを利用しても便利です。

 

2. Eclipseでロジッククラスを開発する

良く使われている統合開発環境である「Eclipse」を用いてロジッククラスを開発する為の環境作成~ロジッククラス作成の手順を説明します。

注意注意
ここにある手順は「例」ですので、プロジェクトに応じてEclipseプロジェクトの作成方法やソースフォルダの設定、ライブラリの設定が異なるかもしれません。

2-1. 環境作成

ロジッククラスをEclipseで作成するには、Eclipseの作業環境へいくつかの設定が必要になります。その設定を行う手順を説明します。

  1. プロジェクトの作成
    Eclipseでプロジェクトを作成します。「Javaプロジェクト」を作成するようにしてください。プロジェクトが作成できたら、パッケージエクスプローラ上でプロジェクトを選択し、「プロジェクトのプロパティ」画面を開いてください。
  2. Javaコンパイラの設定
    「プロジェクトのプロパティ」-「Javaコンパイラ」で準拠レベルを「1.11」に設定してください。
  3. ビルドパスの設定
    「プロジェクトのプロパティ」-「Javaのビルドパス」で「外部JARの追加」を起動してください。
  4. Webtribe用ライブラリの追加
    ファイル選択ダイアログでWebtribeに含まれる「wedge-common-1.7.0.jar, wedge-common-client-1.7.0.jar,wedge-common-server-1.7.0.jar, wedge-run-common-1.7.0.jar, wedge-run-server-1.7.0.jar, wedge-run-data-1.7.0.jar, wedge-run-htmlgateway-1.7.0.jar, wedge-rule-common-1.7.0.jar, wedge-rule-client-1.7.0.jar, wedge-optional-1.7.0.jar, wedge-run-client-1.7.0.jar, wedge-run-server-1.7.0.jar, wedge-rule-common-1.7.0.jar」を全て追加してください。
    images/env01_wt.jpg
  5. ソースフォルダの作成
    「Javaのビルドパス」で「ソース」を開き、「フォルダーの追加」ボタンをClickして「src」と入力してOKボタンをClickします。このとき、「出力フォルダ云々」というメッセージが表示されますが、これはコンパイルしたclassファイルの出力場所を自動設定してよいか?という質問です。問題なければOKボタンをClickしてください。

これでロジッククラスを作成する準備は完了ですので「OK」ボタンをClickしてプロジェクトのプロパティ画面を閉じてください。

ポイントPoint
メール機能やグラフ機能等、Webtribe以外の製品の機能を利用する場合はそれらの製品のjarもライブラリに追加しておく必要があります。

2-2. ロジッククラスの作成

ロジッククラスには「共通ロジッククラス/サーバロジッククラス/クライント(JAVA)ロジッククラス/クライント(HTML)ロジッククラス」という種類がありますが、今回は「共通ロジッククラス」を作成する手順で説明します。
images/rule01.jpg

  1. パッケージの新規作成
    パッケージエクスプローラでソースフォルダを右Clickし、「新規」-「パッケージ」を選択してください。「新規」のサブメニューに「パッケージ」が無い場合は「その他」を選択し、そこから「パッケージ」を選択してください。
  2. クラスの新規作成
    ソースを作成したいパッケージをパッケージエクスプローラで右Clickし、「新規」-「クラス」を選択してください。「新規」のサブメニューに「クラス」が無い場合は「その他」を選択し、そこから「クラス」を選択してください。
  3. クラス生成の初期設定
    これまでの手順で「新規Javaクラス」作成ウィザードが起動されているはずです。「名前」テキストフィールドに作成するクラス名を、「スーパークラス」にロジッククラスの種類に応じたクラス名を入力してください。共通ロジッククラスを作成するのであれば「jp.ne.mki.wedge.rule.base.AbstractCommon」と入力します。さらに、「継承された抽象メソッド」チェックボックスもチェックして「終了」ボタンをClickしてください。
  4. 自動生成されたソース
    ロジッククラスに実装が必要なメソッドも自動的に作成されたソースが完成します。
    images/rule02.jpg

後はロジッククラスの実装を進めていくだけです。ロジッククラスの実装方法は「共通ロジッククラス/サーバロジッククラス/クライント(JAVA)ロジッククラス/クライント(HTML)ロジッククラス」を参考にしてください。またEclipseの設定を特に何もしていなければ、ロジッククラスのコンパイルはファイルを保存した時に自動的に行われます。

ポイントPoint
ロジッククラスの種類が違っても、ロジッククラスを作成する手順は「スーパークラス」のクラス名が変わるだけです。どのようにロジッククラスの種類を使い分けるかは各ロジッククラスのリファレンスを参考に決定してください。

 

3. EclipseとJUnitでロジッククラスの試験を実施する

良く使われている統合開発環境である「Eclipse」と試験ツール「JUnit」を用いてロジッククラスを試験する為の環境作成の手順を説明します。

3-1. 環境設定

JUnitを使用した「試験の繰り返し自動実行」を利用する事が一般的になっています。Webtribeで利用するロジッククラスも、JUnitで試験を行う運用を行う事ができれば便利です。ただし、Webtribeで利用するロジッククラスはWebtribeのエンジンが初期化~アイテム設定~実行までを行う事ができるインターフェースを実装しており、ロジッククラスとしての色々な初期化作業が必要です。これらの初期化作業やエンジンの動作をエミュレートするためのツールとして「jp.ne.mki.wedge.junit.RuleRunner」というクラスが提供されています。このクラスを使う事により、本来Webtribeのエンジン上でしか動作しないロジッククラスの試験をJUnitを使って実施する事が可能になります。

  1. ライブラリの追加
    images/env02_wt.jpg

    プロジェクトのプロパティ画面を開き、ライブラリにWebtribeに含まれる「wedge-tool-client-1.7.0.jar,wedge-tool-common-1.7.0.jar,wedge-testing-1.7.0.jar,wedge-run-common-1.7.0.jar,wedge-run-server-1.7.0.jar,wedge-common-1.7.0.jar,wedge-common-client-1.7.0.jar,wedge-common-server-1.7.0.jar」を追加してください。
  2. ライブラリの追加
    さらに、JUnitのライブラリ(junit.jar等)も追加してください。

ポイントPoint
JUnitについてはhttp://www.junit.org/からライブラリを取得するか、All-In-One Eclipseをインストールした場合は直下のプラグインフォルダの「org.junit...」にある可能性もあります。

3-2. TestCaseの作成

試験を行うクラスをTestCaseと呼びますが、これをEclipseで作成します。

  1. TestCase作成
    パッケージエクスプローラ上で「試験対象クラス」を右クリックし、「新規」-「JUnitテストケース」をClickします。

  2. images/testcase01.jpgTestCase初期設定

    「JUnitテストケース作成ウィザード」が起動しますが、デフォルト値は変更する必要がないので「終了」ボタンをClickします。

  3. TestCase作成完了
    自動的にTestCaseのソースが作成されます。
    images/testcase02.jpg

  4. images/testcase03.jpgjp.ne.mki.wedge.junit.RuleRunnerの使用方法

    importの宣言を行う領域で、「import Rule」くらいまで入力するとEclipseのコード補完機能が自動的に候補をポップアップしてくれます。ここから選択してください。

  5. TestCase実装
    RuleRunnerを使ったTestCaseの具体的な実装方法はJUnitでのロジッククラス試験方法にある内容を参考にして実装を行ってください。
  6. 試験実行
    TestCaseが完成したら、パッケージエクスプローラ上でTestCaseクラスを右Clickして、「実行」-「JUnitテスト」をClickします。
  7. 実行結果の確認
    上記手順だけで試験は実行され、結果がJUnitビューに表示されます。
    images/testcase04.jpg
ポイントPoint
試験を実施する時に「TestCaseクラス」から「JUnitテスト」を選ぶのではなく、複数の「TestCaseクラス」が含まれた「パッケージ」を選んで「JUnitテスト」を選択すると、パッケージ内の全てのTestCaseを使った試験が行われます。

 

4. Eclipseのデバッグ機能を使ってロジッククラスをデバッグする(Client)

良く使われている統合開発環境である「Eclipse」上でClientEngineを起動し、CilentEngineを実際に動作させながら、Webtribeアプリケーションに組み込まれたロジッククラスをデバッグする為の環境作成の手順を説明します。

4-1. 環境作成

  1. 設定ファイルの配置
    images/cengine02.jpg

    ClientEngine実行環境配下にある「conf/common.wdg」「conf/RunClient.wdg」「conf/RunClientConstants.wdg」をEclipseプロジェクトのフォルダにコピーします。Eclipseのパッケージエクスプローラ上でのコピーではなくOSのファイルマネージャでコピー作業を行った場合は、パッケージエクスプローラ上でプロジェクトを右クリックし「更新」を行います。

  2. Javaアプリケーション構成の作成
    Eclipseのメニュー「実行」-「構成およびデバッグ」をClickし、表示された画面の左側のツリーで「Javaアプリケーション」を選択します。Javaアプリケーションが選択された状態で「新規」ボタンをClickします。
  3. Javaアプリケーションの設定1
    「プロジェクト」にロジッククラスを作成したプロジェクトを設定します。次に、「メインクラスの検索時にライブラリーを組み込む」にチェックを入れます。この状態で「メインクラス」の設定を「検索」ボタンをClickして選択します。
  4. Javaアプリケーションの設定2
    images/cengine03.jpg

    メインクラスの検索を行うダイアログが表示されるので、テキストフィールドに「Wedge」と入力してください。下のリストにメインクラスとして使用できるクラスの候補が絞り込まれて表示されるので、「WedgeMain」を選択して「OK」ボタンをClickしてください。下の図のようになっているはずですので、「実行」ボタンをClickしてください。

    images/cengine01.jpg
  5. ClientEngineの起動確認
    ClientEngineが正常に起動できれば終了してください。

4-2. デバッグ

  1. BreakPointの設定
    Eclipseのエディタでデバッグしたいロジッククラスを開き、とりあえずはexecute()メソッドの先頭行にBreakPointを設定します。BreakPointを設定したい行にカーソルがある状態で、メニュー「実行」-「行ブレークポイントの切り替え」を選択するとBreakPointのOn/Offができます。
  2. デバッグモードで起動
    images/cengine04.jpg

    Eclipseのツールバー上の「虫」アイコンで過去に起動した事がある実行の構成をデバッグモードで起動できます。アイコンにマウスカーソルを当ててToolTipをポップアップさせて、ClientEngineの構成でなければアイコンの右のプルダウンメニューからデバッグモードで起動したい実行の構成を選択してください。
  3. URLClassLoaderでの停止
    ClientEngineのDesktopが起動する前に「URLClassLoader」で処理が止まることがあります。この時は「F8」キーを押してDesktopが表示されるまたは評価版のダイアログが表示されるまで処理を「再開」してください。
  4. ロジッククラスを含むアプリケーションを起動
    ここから先はClientEngineを単体で起動したときと同様に、デバッグしたいロジッククラスが含まれたアプリケーションを実行してください。

  5. Eclipseでのステップ実行
    ClientEngineがロジッククラスを実行した瞬間、Eclipseに制御が戻ってロジッククラスのデバッグを開始できます。
 

5. Eclipseのデバッグ機能を使ってロジッククラスをデバッグする(server)

良く使われている統合開発環境である「Eclipse」上でServerEngineを起動し、ServerEngineを実際に動作させながら、Webtribeアプリケーションに組み込まれたロジッククラスをデバッグする為の環境作成の手順を説明します。

注意注意
ここで説明する手順を実施するにはWebtribeのサーバ側で動作する各サーバ間の関係や通信方法等の知識が必要になるかもしれません。Webtribeでの開発環境を構築した環境によっては、ここで説明する内容だけでは環境が構築できない可能性もありますので、そういった場合はプロジェクトの環境担当者に相談をしてください。

5-1. 環境作成

Client側アプリケーションからの要求がEclipse上で実行しているServerEngineに届くような仕組みを構築する必要があります。

ServerEngineは「Clientアプリケーションからの要求をWebサーバ経由で受取ったWebtribeのServlet」が、「RMIサーバからServerEngineをLookupして取得したServerEngine」へ要求を引き渡します。ここでの説明は、下記のサーバ側モジュールを開発者のローカルマシンに配置する方法でEclipse上で動作するServerEngineへつなぎます。

Webtribeのサーバ側では上記のほかに、アプリケーションの設計情報をリポジトリDBから取得する「ToolRmi4Engine」、業務データDBに対してクエリを発行する「RunDBServer」等、いくつかのサーバ側モジュールがありますが、これから説明する手順ではこれらは開発者のローカルマシン上では起動せずにWebtribeでの開発環境として既に存在しているものへRMI経由で接続する事が前提です。

ポイントPoint
Webtribeでのサーバモジュールの構成の詳細はネットワーク構成を参考にしてください。

  1. Tomcatのインストール
    今回はTomcatを使用する方法を紹介します。Tomcatをダウンロードし、ローカルマシンに配置してください。zip版ですと、解凍して「${tomcat}/bin/startup.bat」の先頭行で「JAVA_HOME」を指定するだけです。
  2. デバッグ用サーバプロジェクトの作成
    先の手順でインストールしたTomcatのwebapps配下にフォルダをひとつ作成してください。これがローカルマシンで動作するRunServlet用のプロジェクトになります。今回は「debugserver」という名称にしました。これより以下ではこのフォルダを「デバッグ用Tomcatプロジェクト」と呼びます。
    さらに、このフォルダ配下に「WEB-INF」という名前のフォルダを作成してください。さらに、WEB-INFの下に「logs」という名前のフォルダを作成してください。
  3. RunSevletの配置

    images/sengine01.jpgWebtribeでの開発サーバの「WEB-INF」配下から以下のモジュールをコピーしてきて、デバッグ用Tomcatプロジェクトの「WEB-INF」直下に配置してください。
    • RMI.bat
    • setenv.bat
    • web.xml
    • conf/common.wdg
    • conf/RunServlet.wdg
    • lib配下の全てのjar
    デバッグ用Tomcatプロジェクト直下のWEB-INF配下の構成が右図のようになればOKです。

  4. ServerEngine設定ファイルの配置
    images/sengine02.jpg

    Eclipseプロジェクトの下に「conf.server」フォルダを作成して、Webtribeでの開発サーバの「WEB-INF」配下にある「conf/common.wdg」「conf/RunApServer.wdg」「conf/RunApServerConstants.wdg」をコピーします。さらに、Eclipseプロジェクト配下に「logs」フォルダも作成してください。
    Eclipseのパッケージエクスプローラ上でのコピーではなくOSのファイルマネージャでコピー作業を行った場合は、パッケージエクスプローラ上でプロジェクトを右クリックし「更新」を行います。

  5. ServerEngine用設定ファイルの編集1
    Eclipseプロジェクト配下の「conf.server/common.wdg」を開き、以下の編集を行います。
    <macro name="HttpHost" value="192.168.10.76" /> ←Webtribe用開発マシンのHost名を設定。
    <macro name="RmiHost" value="192.168.10.76" /> ←Webtribe用開発マシンのHost名を設定。
    
    「macro name="RmiUrl"」の次の行に以下の行を追加します。
    <macro name="RmiUrlLocal"  value="${rmi}://localhost${RmiPort}/" />
    

  6. ServerEngine用設定ファイルの編集2
    Eclipseプロジェクト配下の「conf.server/RunApServer.wdg」を開き、「config/module/network/regist」の個所に対して以下の編集を行います。
    <regist protocol="${rmi}" url="${RmiUrlLocal}RunApServer" exchanger="${CommonExchanger}" />
    
    「config/module/wedgedef/resource/files/file」の個所に対して以下の編集を行います。
    <file name="constant" value="conf.server/RunApServerConstants.wdg" />
    

  7. Javaアプリケーション構成の作成
    Eclipseのメニュー「実行」-「構成およびデバッグ」をClickし、表示された画面の左側のツリーで「Javaアプリケーション」を選択します。Javaアプリケーションが選択された状態で「新規」ボタンをClickします。
  8. Javaアプリケーションの設定1
    images/sengine03.jpg

    「プロジェクト」にロジッククラスを作成したプロジェクトを設定します。次に、「メインクラスの検索時にライブラリーを組み込む」にチェックを入れます。この状態で「メインクラス」の設定を「検索」ボタンをClickして選択します。

  9. Javaアプリケーションの設定2
    images/sengine04.jpg

    メインクラスの検索を行うダイアログが表示されるので、テキストフィールドに「XM_Server」と入力してください。下のリストにメインクラスとして使用できるクラスの候補が絞り込まれて表示されるので、「XM_ServerMain」を選択して「OK」ボタンをClickしてください。 次に 「実行」ボタンをClickしてください。

  10. ServerEngineの起動確認
    ServerEngineが正常に起動できれば終了してください。
    images/sengine05.jpg

5-2. デバッグ

  1. Tomcatの起動
    Tomcatをインストールしたフォルダ直下の「bin/startup.bat」を起動します。
  2. RMIサーバの起動
    デバッグ用Tomcatプロジェクト/WEB-INF直下の「RMI.bat」を起動します。
  3. BreakPointの設定
    Eclipseのエディタでデバッグしたいロジッククラスを開き、とりあえずはexecute()メソッドの先頭行にBreakPointを設定します。BreakPointを設定したい行にカーソルがある状態で、メニュー「実行」-「行ブレークポイントの切り替え」を選択するとBreakPointのOn/Offができます。
  4. デバッグモードで起動
    images/cengine04.jpg

    Eclipseのツールバー上の「虫」アイコンで過去に起動した事がある実行の構成をデバッグモードで起動できます。アイコンにマウスカーソルを当ててToolTipをポップアップさせて、ClientEngineの構成でなければアイコンの右のプルダウンメニューからデバッグモードで起動したい実行の構成を選択してください。
  5. ロジッククラスを含むアプリケーションを起動
    目的のロジッククラスを含むSAMCアプリケーションが起動できるClientアプリケーションを実行してください。

  6. Eclipseでのステップ実行
    Clientアプリケーションから要求を受けてSAMCアプリケーションがロジッククラスを実行した瞬間、Eclipseに制御が戻ってロジッククラスのデバッグを開始できます。
ポイントPoint
ServerEngineをキックするためのClientアプリケーションがローカルマシンへ接続するように設定する必要があります。WebtribeのClientの場合、ClientEngine実行環境直下の「conf/common.wdg]を以下のように編集してください。
「macro name="ServletUrl"」のしたの行に以下を追加。
<macro name="ServletUrlLocal" value="${http}://localhost:8080/debugserver/servlet/" />
「config/network/server」の「name="RunServlet」を以下のように編集。
<server name="RunServlet"
  protocol="${http}"
  url="${ServletUrlLocal}jp.ne.mki.wedge.run.servlet.main.XM_MainServlet"
このように設定を行う事で、リポジトリ取得のリクエストはWebtribe開発マシンへ、アプリケーションのリクエストはローカルマシンのデバッグ環境へ振り分ける事が出来ます。

注意注意
Webtribe用開発サーバにファイアウォールなどが設定されている場合、ローカルマシンからWebtribe用開発サーバ上で実行されている「RMIサーバ」「ToolRmi4Engine」「RunDBServer」等への接続が出来ない場合があります。この場合はWebtribe用開発サーバの管理者にこれらで使用しているポートを開いてもらう必要があります。
Webtribe用開発サーバの管理者の方は、RMIサーバで使用しているポート(Defaultでは56246など)だけではなくて、「ToolRmi4Engine」「RunDBServer」が使用するポートも開く必要があります。これらは設定ファイルで指定しない限りは「ランダムでポート番号を決定する」ため、設定ファイルで指定しておいた方が良いです。これらの指定方法はToolRmi4Engineの設定RunDBServerの設定を参考にしてください。

 

6. Eclipseのデバッグ機能について

EclipseはWebtribeとは別のツールですので、Eclipseのデバッグ機能の詳細な説明はここでは説明しません。Eclipseのヘルプなどで確認してください。よく使いそうな機能だけを抽出して説明しておきます。