gpt4 book ai didi

java - 如何安全地动态重新加载服务器端 JavaScript 函数?

转载 作者:行者123 更新时间:2023-12-01 09:18:24 24 4
gpt4 key购买 nike

我正在尝试 Nashorn 并从 Java 代码调用 js 函数。我有一个 WatchService,可以重新加载更改的文件并重新评估 ScriptEngine

engine.eval(Files.newBufferedReader(Paths.get(scriptFile), StandardCharsets.UTF_8));

它似乎工作得相当好,但是,有几次我保存了带有毫无疑问的拼写错误的 JavaScript 文件,并随后尝试调用函数

invoker.invokeFunction("printServiceReport", tesla);

导致抛出 javax.script.ScriptException 从而杀死我正在运行的代码。寻找一种可行的解决方案来实时重新加载逻辑,而不会对我的应用程序造成负面影响。

最佳答案

将每个代码文件的评估以及调用包装在 try catch 中。

如果需要,您可以在重新加载时运行所有函数以查看是否发生错误 - 然后如果发现错误则使用旧版本(如果在运行时检测错误是 Not Acceptable )。

当我们重新加载服务器端脚本时,我们会执行类似的操作。

关于java - 如何安全地动态重新加载服务器端 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40350823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com