JavaScript Debugger
- Launchers
- Подключение к удалённому JavaScript
- Run JavaScript (Local)
- Debug JavaScript (Local)
Для возможности подключиться удалённым отладчиком к BeanExplorer, необходимо использовать BeanExplorer из ветки js-debug и в файле /common/makefiles/optional_packages.xml подправить строчки
<property name="RHINO_JAR" value="${COMMONBINDIR}/js.jar"/>
<property name="RHINO_JAR" value="${COMMONBINDIR}/js17R4.jar"/>
Launchers
BeanExplorer4 использует возможности Eclipse JavaScript Development Tools (JSDT). JSDT предоставляет два типа launcher'а, относящихся к Rhino: Rhino JavaScript и Remote JavaScript.
Remote JavaScript - это способ подключения к удалённому запуску JavaScript - предполагается, что на каком-то компьютере запущен JavaScript с отладчиком, который открыл порт для подключения и ждёт, что к нему подключится удалённый отладчик.
Rhino JavaScript же представляет одновременно запуск и самого скрипта, и удалённого отладчика к нему. Поскольку этот вид launcher'а запускает скрипт Rhino, но не позволяет при этом выбрать то, откуда брать Java классы, он нам бесполезен.
- JAVA_SCRIPT_DEBUG_MODE - включение режима отладки (значение TRUE),
- JAVA_SCRIPT_OPERATION_TO_DEBUG - имя отлаживаемой операции (например, просто "Test"),
- JAVA_SCRIPT_SOURCE_NAME - имя файла с отлаживаемой операцией, так, как оно отображается в Eclipse (например, "/condo_be4/src/js/operations/userRegistrations - Test.js").
- JAVA_SCRIPT_METHOD_TO_DEBUG - имя метода для отладки (остальные методы не будут отлаживаться), одно из:
NOTHING, // there is no methods to debug
GET_PARAMETERS, // getParameters
INVOKE, // invoke
GET_REDIRECT_URL, // getRedirectURL
CUSTOM_GENERIC, // getCustomAction, getCustomEnctype, getCustomMethod
CONTEXT, // the script itself
Установка этих переменных возможна автоматически, посредством нажатия кнопки "Set Current Operation As Remotely Debugged" на основном тулбаре (при открытом редакторе JavaScript). Отключение режима отладки возможен посредством пункта "BeanExplorer"->"Turn Off Server JavaScript Debugging" основного меню.
-
Несмотря на то, что отладчик успешно подключается и позволяет продолжать запуск скрипта, отлаживаемые скрипт не доходит до конца, так что страница с результатом не открывается.(Fixed 14.05.22)
- Может
некорректно реагировать на первый breakpoint: в таком случае для того,
чтобы увидеть переменные в скрипте, надо поставить хотя бы два breakpoint'а и нажать resume при первой остановке отладчика.
Run JavaScript (Local)
-
Зависает, если текущая операция - отлаживаемая (systemsettings).(Fixed 14.05.21)
- Позволяет запускать только getParameters() и invoke(), но не getRedirectURL().
Debug JavaScript (Local)
-
Скрипт не доходит до конца. Для того, чтобы он дошёл до конца (в таком случае откроется браузер с результатом), необходимо самому ещё раз запустить launch configuration с именем "BeanExplorer4" и запустить скрипт дальше (Resume/F8).(Fixed 14.05.22)
- Позволяет запускать только getParameters() и invoke(), но не getRedirectURL().
-
Нет class loading'а!!!(Fixed 14.05.22)
Debug (Удалил эту операцию)
-
В браузере отображается только то, что было распечатано в коде JavaScript. -
В контексте лежит не всё (entity, parameters, context, out, connector).
Замечание: Run (Experimental) и Debug по сути своей одно и то же - они нужны для запуска отладки скрипта. Они отличаются способом настроить запуск и своими багами. Когда нормально доделаю отладку, будет только одна из этих команд. Update: теперь уже понятно, какая из них.