我使用GraalVM与JavaScript互操作,因为Nashorn将被弃用。
问题是我的变量在JavaScript运行时是未定义的
。
ScriptEngine engine = new ScriptEngineManager().getEngineByName("graal.js");
String path = "rules.js";
InputStream is = Main.class.getClassLoader().getResourceAsStream(path);
Reader reader = new InputStreamReader(is);
engine.eval(reader);
Invocable inv = (Invocable) engine;
Object obj = engine.get("obj");
User user = new User();
user.setName("username");
user.setProfile("admin");
Boolean value = (Boolean) inv.invokeMethod(obj, "validatePermission", user);
这是我正在运行的JavaScript代码:
var obj = new Object();
obj.validatePermission = function(user) {
console.log(user.profile)
if(user.profile === 'admin') {
return true;
} else {
throw 'Unauthorized. User must be administrator.';
}
}
POM依赖项:
<project>
<properties>
<graalvm.version>19.0.0</graalvm.version>
</properties>
<dependencies>
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js</artifactId>
<version>${graalvm.version}</version>
</dependency>
<dependency>
<groupId>org.graalvm.js</groupId>
<artifactId>js-scriptengine</artifactId>
<version>${graalvm.version}</version>
</dependency>
<dependency>
<groupId>org.graalvm.truffle</groupId>
<artifactId>truffle-api</artifactId>
<version>${graalvm.version}</version>
</dependency>
</dependencies>
</project>
设置Nashorn兼容性模式解决了它。
System.setProperty("polyglot.js.nashorn-compat", "true");
更多关于这里的信息:Nashorn移民指南。
以上所有信息均由GraalVM团队提供。
在GraalVM CE上跑步。 案例一: 结果: 为什么? 据我所知,正确通过: 返回。 案例2: 例外情况 但是是公共的。。。发生了什么?
我是Spring的新手,正在注册一个用户。我确实喜欢这个。 这很好,但这里的问题是,在我的欢迎中,我不需要这个用户对象。jsp页面,那么为什么要使模型对象更重呢。因此,我尝试了不使用ModelAttribute,这也适用于我,如下所示。 所以我只想知道什么是专业 我想将我的查询分类为以下4种类型的request.what如果我不需要在视图中发送数据并且我的请求是任何- 查询字符串即GET中的表单数
我正在尝试运行以下Graalvm示例代码: 我得到了一个例外: 我是graalvm的新手,我做错了什么?我从留档(请参阅主机互操作性部分)遵循这个演示:https://www.graalvm.org/sdk/javadoc/
本文向大家介绍java 获取对象中为null的字段实例代码,包括了java 获取对象中为null的字段实例代码的使用技巧和注意事项,需要的朋友参考一下 下面一段简单的代码给大家分享java 获取对象中为null的字段,具体代码如下所述: PS:将Java对象中属性值为null获取到 话不多说,直接贴代码,这里可以进行对json对象参数进行校验的,找到不为空的参数,或者对象所有属性都不为空这样的校验
问题内容: 我不明白为什么会收到错误预期[object Undefined] undefined为字符串 这是脚本Java LoginToGmail.java 全栈错误是: 问题答案: 要使用Selenium 3.x,Mozila Firefox 52.x,您需要从此处下载最新的gecko驱动程序,并提供gecko驱动程序的绝对路径,如下所示: