3

我正在尝试通过 Sightly 模板语言的JavaScript UseAPI调试存储在 JCR 中并使用 Rhino 在服务器上运行的 JavaScript 。

根据sling.properties中提供的说明:

# To enable the current server side debugging in the Rhino interpreter
# set the org.apache.sling.scripting.javascript.debug property to true.
# This will open a Swing window for Rhino JavaScript debugging on the
# server platform.

当我这样做时,我可以看到 Rhino 的 Swing 窗口。但是,如果我尝试在 JavaScript 文件上设置断点,或者通过添加debugger;一行来触发调试器,调试器会中断但不会显示正确的文件。

同样,如果我从 Debug 菜单中选择“Break on function enter”,调试器将中断,但使用“Step Into/Over/Out”似乎会跳转到代码中的随机点。

这对其他人有用吗?我正在使用 org.apache.sling.scripting.javascript 的 v2.0.14,这似乎是最新的。

4

2 回答 2

1

正如您在其中一条评论中已经提到的那样,此功能似乎尚未真正实现。

在主要的Sightly文档中,他们列出了以下使用 javascript Use API 而不是 Java Use API 的缺点

没有调试器(还)

于 2016-04-04T01:13:43.437 回答
0

由于 rhino 脚本最终编译为 java 类,您可以添加java.lang.System.out.println("Resource path: " + resource.getPath())语句和日志值以进行调试,您应该会看到写入的值crx-quickstart/logs/stdout.log

于 2018-08-30T05:40:35.450 回答