我想在 Google App Engine 运行时动态评估 JavaScript 代码。
Java 有这个功能,但想知道 GAE 是否也支持这个功能。
如果您能提供一个简单的代码将非常感激,如果您使用它,请分享评论,谢谢。
...
GAE 支持脚本语言,但默认情况下未注册“JavaScript”服务。所以开箱即用的 GAE 不会评估 JavaScript。
我想在 Google App Engine 运行时动态评估 JavaScript 代码。
Java 有这个功能,但想知道 GAE 是否也支持这个功能。
如果您能提供一个简单的代码将非常感激,如果您使用它,请分享评论,谢谢。
...
GAE 支持脚本语言,但默认情况下未注册“JavaScript”服务。所以开箱即用的 GAE 不会评估 JavaScript。
https://developers.google.com/appengine/docs/java/jrewhitelist在其列入白名单(允许)的 API 中包含 javax.script.ScriptEngine,所以,是的。
上次我试过,虽然ScriptEngine被列入白名单,但在生产环境中不可用。我必须将Rhino.jar与我的应用程序一起打包。
有关 Java 中脚本的一般用法示例,您可以参考Java 文档本身。
但请注意,在 GAE/J 环境中,您需要直接调用 Rhino API。
例如,
// Import statements.
import org.mozilla.javascript.Context;
import org.mozilla.javascript.Scriptable;
private Object executeUsingRhino(String script) throws Exception
{
Context ctx = Context.enter();
try
{
Scriptable scope = ctx.initStandardObjects();
return ctx.evaluateString(scope, script, "<cmd>", 1, null);
}
finally
{
Context.exit();
}
}
// Invoke a script that returns a string output using the following code snippet
String output = Context.toString(executeUsingRhino(script));