Skip to main content

Server-Side Setup

This page covers the server-side setup required to use the debugging feature of e Builder (Debug).

If you only use the test feature, none of this page applies. Go on to Running Tests and Coverage.

Target iAP version

The debugging feature targets intra-mart Accel Platform 2025 Spring and later.

Overview of the Setup​

Using the debugging feature requires the following two things.

  1. Install the debugger module on the server (for 2026 Autumn or later, the "Module Development Support Library" in IM-Juggling; for 2026 Spring or earlier, the user module im_eb_js_debugger.imm)
  2. Configure the server to start in debug mode

In Docker environments (docker-stacks / docker-stacks-cluster), both are already prepared. You therefore do not need the steps below. However, if you also use e Builder (IDE), you need to change a setting, so check Debugging with e Builder (IDE).

Installing the Debugger Module​

Not needed for Docker environments

In Docker environments (docker-stacks / docker-stacks-cluster), the debugger module is built in by default (including environments for 2026 Autumn or later). You do not need to add the debugger module or rebuild the WAR.

Perform the steps in this section only outside Docker environments. If it is not built in for your Docker environment for 2026 Spring or earlier, you can add it afterward by following Appendix - Adding User Modules.

How you install it depends on the iAP version.

iAP versionInstallation method
2026 Autumn or laterAdd the "Module Development Support Library" on the application selection screen of IM-Juggling
2025 Spring to 2026 SpringIncorporate the user module im_eb_js_debugger-8.0.4.imm with IM-Juggling

For 2026 Autumn or Later​

When you create or edit an IM-Juggling project following Creating a WAR File, select the "Module Development Support Library" on the application selection screen. You do not need to incorporate the user module (im_eb_js_debugger-8.0.4.imm).

For 2025 Spring to 2026 Spring​

The im_eb_js_debugger-8.0.4.imm file is provided with the distributed assets (the 8.0.4 in the file name is the version number). This file is an asset for installation as a user module using IM-Juggling.

Follow How to Incorporate a User Module to install it as a user module using IM-Juggling.

If you use the Module Development Support Library, do not include the Debugger Library for Script Development

"Module Development Support Library" → "Debugger" → "Debugger Library for Script Development" conflicts in functionality with the im_eb_js_debugger-8.0.4.imm file you install as a user module, so do not include it in the module configuration.

Configuring Debug Mode​

To connect from VSCode, you must start the server in DAP mode. You configure this with jvm_args in Resin's resin.properties, specifying the following two arguments.

-Djp.co.intra_mart.system.javascript.Debugger.protocol=dap
-Djp.co.intra_mart.system.javascript.Debugger.port=9000
ArgumentDescription
Debugger.protocolSpecifying dap starts the server in a mode VSCode can connect to.
Debugger.portThe port number VSCode connects to. The e Builder (extensions) connect to 9000 by default.

Write the arguments on a single jvm_args line. Here is an example.

jvm_args : -Dfile.encoding=UTF-8 ... -Djp.co.intra_mart.system.javascript.Debugger.protocol=dap -Djp.co.intra_mart.system.javascript.Debugger.port=9000

What you need to do depends on your environment.

For Docker Environments​

In Docker environments (docker-stacks / docker-stacks-cluster), this setting is already built in. The port used for debugging (9000) is also already open, so no additional work is needed.

However, if you also use e Builder (IDE), you need to change a setting. See Debugging with e Builder (IDE).

For a cluster configuration

In a cluster configuration, both resin1 and resin2 start in DAP mode. The container-side port is 9000 for both, but the host side is assigned the following ports so they do not collide.

ResinConnect to (host side)
resin1Port 9000
resin2Port 9001

Connecting from the Command Palette connects the extension to resin1 (port 9000). To connect to resin2, specify 9001 for port in launch.json. For the steps, see Method 2: Specify the Connection Target.

Which Resin handles a request is decided by Apache HTTPd's load balancing. If execution does not stop at a breakpoint, connect to the other Resin and try again.

For Non-Docker Environments​

Edit conf/resin.properties in the environment where iAP is installed, add the two arguments above, and restart Resin. For where the file is located, see the Accel Platform Setup Guide.

Difference from Java remote debugging

Port 9009, described in Appendix - Adding Debug Ports, is for debugging Java code. It is a different feature from the server-side script debugging (port 9000) described on this page.

Debugging with e Builder (IDE)​

e Builder (IDE) debugging is unavailable in DAP mode

While Debugger.protocol is set to dap, you cannot debug server-side scripts with the Eclipse-based e Builder (IDE).

In Docker environments, this setting is enabled by default. Take note if you use e Builder (IDE).

To debug with e Builder (IDE), change -Djp.co.intra_mart.system.javascript.Debugger.protocol to rhino in jvm_args in resin.properties, or remove the argument, and then restart Resin.

In a Docker environment, the file to edit is resin/overwrite/conf/resin.properties. After editing it, restart Resin with the following command. Because compose.yaml is unchanged, you do not need to recreate the containers (docker compose down / up -d).

# Standalone configuration
docker compose restart resin

# Cluster configuration
docker compose restart resin1 resin2

For other commands, see Appendix - Command Reference.

To debug with the e Builder (extensions) again, set Debugger.protocol back to dap and restart Resin.

Verification​

After restarting Resin, confirm that no errors appear in the startup log.

Next, check that the debug port is listening.

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

If it connects, the server-side setup is complete. If it does not, check what you wrote in resin.properties and that Resin was restarted.

You confirm that debugging actually works in Debugging Scripts.