メインコンテンツまでスキップ

サーバ側の準備

このページでは、e Builder(Debug)のデバッグ機能を使うためにサーバ側で必要な準備を説明します。

テスト機能だけを使う場合、このページの内容はすべて不要です。テストの実行とカバレッジ へ進んでください。

対象の iAP バージョン

デバッグ機能は intra-mart Accel Platform 2025 Spring 以降 を対象としています。

準備の全体像​

デバッグ機能を使うには、次の 2 つが必要です。

  1. サーバに デバッガモジュール を組み込む(2026 Autumn 以降は IM-Juggling の「モジュール開発支援ライブラリ」、2026 Spring 以前はユーザモジュール im_eb_js_debugger.imm)
  2. サーバを デバッグモード で起動するように設定する

Docker 環境(docker-stacks / docker-stacks-cluster)では、この 2 つはあらかじめ用意されています。 そのため、以降の作業は不要です。ただし e Builder(統合開発環境)を併用している場合は設定の変更が必要なため、e Builder(統合開発環境)でデバッグする場合 を確認してください。

デバッガモジュールの組み込み​

Docker 環境の場合は不要です

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.protocoldap を指定すると、VSCode から接続できるモードで起動します。
Debugger.portVSCode が接続するポート番号です。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 セットアップガイド を参照してください。

Java のリモートデバッグとの違い

付録 - デバッグポートの追加 で説明しているポート 9009 は、Java のコードをデバッグするためのものです。このページで説明するサーバサイドスクリプトのデバッグ(ポート 9000)とは別の機能です。

e Builder(統合開発環境)でデバッグする場合​

DAP モードでは 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 の再起動後、起動ログにエラーが出ていないことを確認します。

続いて、デバッグ用のポートが待ち受け状態になっているかを確認します。

Windows(PowerShell)
Test-NetConnection localhost -Port 9000
macOS / Linux
nc -z localhost 9000 && echo OK

接続できれば、サーバ側の準備は完了です。接続できない場合は、resin.properties の記述と Resin の再起動を確認してください。

実際にデバッグできるかどうかは スクリプトのデバッグ で確認します。