Google App Engine是否支持Java Script Engine?

时间:2013-11-06 22:12:08

标签: java javascript google-app-engine dynamic

我想在Google App Engine运行时内动态评估JavaScript代码。

Java有这个功能,但想知道GAE是否也支持这个功能。

如果您能提供简单的代码,我将非常感激,如果您使用它,请分享关于它的评论,谢谢。

...

GAE支持脚本语言,但默认情况下,“JavaScript”服务不是注册。所以GAE开箱即用不会评估JavaScript。

2 个答案:

答案 0 :(得分:2)

https://developers.google.com/appengine/docs/java/jrewhitelist在其白名单(允许)API中包含javax.script.ScriptEngine,所以,是的。

答案 1 :(得分:2)

上次我尝试过,虽然ScriptEngine已列入白名单,但在生产环境中无法使用。我必须将Rhino.jar与我的应用程序一起打包。

有关Java中脚本编写的一般用法的示例,您可以参考Java documentation本身。

但请注意,在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));