作者:王永星2012 | 来源:互联网 | 2023-08-01 10:31
我想在GoogleAppEngine运行时内部动态评估JavaScript代码.Java具有此功能,但想知道GAE是否也支持此功能.如果您可以提供一个简单的代码,将非常感激,如果您
我想在Google App Engine运行时内部动态评估Javascript代码.
Java具有此功能,但想知道GAE是否也支持此功能.
如果您可以提供一个简单的代码,将非常感激,如果您使用它,请分享有关它的评论,谢谢.
…
GAE支持脚本语言,但默认情况下未注册“ Javascript”服务.因此,GAE即用型不评估Javascript.
解决方法:
上一次我尝试将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, "", 1, null);
}
finally
{
Context.exit();
}
}
// Invoke a script that returns a string output using the following code snippet
String output = Context.toString(executeUsingRhino(script));