gpt4 book ai didi

nashorn - GraalVM + Nashorn 无法扩展类

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

我正在尝试使用 graal + nashorn 互操作来编写与 Java 交互的 nodejs。我从 node --jvm --jvm.Xss2m --jvm.Dtruffle.js.NashornJavaInterop=true --jvm.classpath=libs/--polyglot app.js 开始 graal。我不能扩展类。 javascript代码是

const GraaljsgrpcServiceImpl = Java.type('com.thing.GraaljsgrpcServiceImpl');
const HelloReply = Java.type('com.thing.HelloReply');
var GrpcImpl = Java.extend(GraaljsgrpcServiceImpl, {
sayHello: function(request, responseObserver) {
responseObserver.onNext(HelloReply.newBuilder().setMessage("Hello " + request.getName()).build());
responseObserver.onCompleted();
}
});

我的错误是TypeError: Could not determine a class loader with access to the JS engine and class com.thing.GraaljsgrpcServiceImpl 这似乎指向我引用的 java 代码和 javascript 运行位置的类加载器问题(即 2 个不同的类加载器)。使用 graal/nodejs 时有没有办法解决这个问题?

最佳答案

感谢您报告这个类加载器问题。我们正在研究这个问题,应该能够在我们的下一个版本中解决这个问题(预计 3 月初为 0.32)。

关于 --jvm.Dtruffle.js.NashornJavaInterop=true 标志:我们强烈建议不要使用它,而是取决于 GraalVM 的内置互操作性。但是,在这种模式下,Graal.js 并不是 100% 兼容 Nashorn/Rhino;例如,我们不支持该模式下的 Java.extendJava.extend 是您设置 NashornJavaInterop 标志的唯一原因吗?

谢谢,基督徒

关于nashorn - GraalVM + Nashorn 无法扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48728080/

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