サーバ側の準備
このページでは、e Builder(Debug)のデバッグ機能を使うためにサーバ側で必要な準備を説明します。
テスト機能だけを使う場合、このページの内容はすべて不要です。テストの実行とカバレッジ へ進んでください。
デバッグ機能は intra-mart Accel Platform 2025 Spring 以降 を対象としています。
準備の全体像
デバッグ機能を使うには、次の 2 つが必要です。
- サーバに デバッガモジュール を組み込む(2026 Autumn 以降は IM-Juggling の「モジュール開発支援ライブラリ」、2026 Spring 以前はユーザモジュール
im_eb_js_debugger.imm) - サーバを デバッグモード で起動するように設定する
Docker 環境(docker-stacks / docker-stacks-cluster)では、この 2 つはあらかじめ用意されています。 そのため、以降の作業は不要です。ただし e Builder(統合開発環境)を併用している場合は設定の変更が必要なため、e Builder(統合開発環境)でデバッグする場合 を確認してください。
デバッガモジュールの組み込み
Docker 環境(docker-stacks / docker-stacks-cluster)では、デバッガモジュールが 既定で組み込まれています(2026 Autumn 以降の環境を含みます)。デバッガモジュールの追加や WAR の再作成は不要です。
このセクションの作業は、Docker 環境以外の場合に行ってください。なお、2026 Spring 以前の Docker 環境で組み込まれていない場合は、付録 - ユーザモジュールの追加 の手順で後から追加できます。
組み込み方は、iAP のバージョンによって異なります。
| iAP のバージョン | 組み込み方法 |
|---|---|
| 2026 Autumn 以降 | IM-Juggling のアプリケーション選択画面で「モジュール開発支援ライブラリ」を追加する |
| 2025 Spring 〜 2026 Spring | ユーザモジュール im_eb_js_debugger-8.0.4.imm を IM-Juggling で組み込む |
2026 Autumn 以降の場合
WAR ファイルの作成 の手順で IM-Juggling のプロジェクトを作成・編集する際に、アプリケーション選択画面で「モジュール開発支援ライブラリ」を選択します。ユーザモジュール(im_eb_js_debugger-8.0.4.imm)の組み込みは不要です。
2025 Spring 〜 2026 Spring の場合
配布資材より、im_eb_js_debugger-8.0.4.imm ファイルが提供されています(ファイル名の 8.0.4 はバージョン番号です)。このファイルは、IM-Juggling を用いたユーザモジュールとして組み込むための資材です。
ユーザモジュール組み込み方法 に従い、IM-Juggling を用いてユーザモジュールとして組み込みます。
「モジュール開発支援ライブラリ」→「デバッガ」→「スクリプト開発のためのデバッグ機能」は、ユーザモジュールとして組み込む im_eb_js_debugger-8.0.4.imm ファイルと機能が競合してしまうため、モジュール構成には含めないでください。
デバッグモードの設定
VSCode から接続するには、サーバを DAP モード で起動する必要があります。設定は Resin の resin.properties にある jvm_args で行い、次の 2 つの引数を指定します。
-Djp.co.intra_mart.system.javascript.Debugger.protocol=dap
-Djp.co.intra_mart.system.javascript.Debugger.port=9000
| 引数 | 説明 |
|---|---|
Debugger.protocol | dap を指定すると、VSCode から接続できるモードで起動します。 |
Debugger.port | VSCode が接続するポート番号です。e Builder(拡張機能)は既定で 9000 に接続します。 |
jvm_args は 1 行に引数を並べて記述します。設定例は次のとおりです。
jvm_args : -Dfile.encoding=UTF-8 ... -Djp.co.intra_mart.system.javascript.Debugger.protocol=dap -Djp.co.intra_mart.system.javascript.Debugger.port=9000
必要な作業は環境によって異なります。
Docker 環境の場合
Docker 環境(docker-stacks / docker-stacks-cluster)では、この設定はあらかじめ組み込まれています。デバッグで使用するポート(9000)も開放済みのため、追加の作業は不要です。
ただし、e Builder(統合開発環境)を併用している場合は設定の変更が必要です。e Builder(統合開発環境)でデバッグする場合 を参照してください。
クラスタ構成では resin1 と resin2 の両方が DAP モードで起動します。コンテナ側のポートはどちらも 9000 ですが、ホスト側は重複しないように次のポートが割り当てられています。
| Resin | 接続先(ホスト側) |
|---|---|
resin1 | ポート 9000 |
resin2 | ポート 9001 |
拡張機能はコマンドパレットから接続すると resin1(ポート 9000)に接続します。resin2 に接続する場合は launch.json で port に 9001 を指定してください。手順は 接続先を指定して接続する を参照してください。
リクエストをどちらの Resin が処理するかは Apache HTTPd の振り分けによって決まります。ブレークポイントで止まらない場合は、もう一方の Resin に接続して試してください。
Docker 環境以外の場合
iAP をインストールした環境の conf/resin.properties を編集し、上記の 2 つの引数を追加して Resin を再起動します。配置場所は Accel Platform セットアップガイド を参照してください。
付録 - デバッグポートの追加 で説明しているポート 9009 は、Java のコードをデバッグするためのものです。このページで説明するサーバサイドスクリプトのデバッグ(ポート 9000)とは別の機能です。
e Builder(統合開発環境)でデバッグする場合
Debugger.protocol に dap を設定している間は、Eclipse ベースの e Builder(統合開発環境)でのサーバサイドスクリプトのデバッグができなくなります。
Docker 環境ではこの設定が既定で有効になっています。 e Builder(統合開発環境)を利用している場合はご注意ください。
e Builder(統合開発環境)でデバッグする場合は、resin.properties の jvm_args で -Djp.co.intra_mart.system.javascript.Debugger.protocol を rhino に変更するか、この引数を削除して Resin を再起動します。
Docker 環境で編集するファイルは resin/overwrite/conf/resin.properties です。編集後、次のコマンドで Resin を再起動します。compose.yaml は変更しないため、コンテナの再作成(docker compose down / up -d)は不要です。
# スタンドアロン構成
docker compose restart resin
# クラスタ構成
docker compose restart resin1 resin2
その他のコマンドは 付録 - コマンドリファレンス を参照してください。
再び e Builder(拡張機能)でデバッグする場合は、Debugger.protocol を dap に戻して Resin を再起動します。
作業完了確認
Resin の再起動後、起動ログにエラーが出ていないことを確認します。
続いて、デバッグ用のポートが待ち受け状態になっているかを確認します。
Test-NetConnection localhost -Port 9000
nc -z localhost 9000 && echo OK
接続できれば、サーバ側の準備は完了です。接続できない場合は、resin.properties の記述と Resin の再起動を確認してください。
実際にデバッグできるかどうかは スクリプトのデバッグ で確認します。