我正在Docker容器中运行的Wildfly中部署一个JavaEE应用程序。此应用程序使用GraalVM运行R脚本。环境被设置为在Java11中使用GraalVM,但是当我执行脚本时,im收到错误:“没有安装id为'R‘的语言。已安装的语言是:[]。”这是我的pom.xml:
<!-- R Language -->
<dependency>
<groupId>org.graalvm.sdk</groupId>
<artifactId>graal-sdk</artifactId>
<version>19.3.1</version>
</dependency>
<dependency>
<groupId>org.graalvm.truffle</groupId>
<artifactId>truffle-api</artifactId>
<version>19.3.1</version>
</dependency>这是脚本调用,它返回一个svg文件:
try(var ctx = org.graalvm.polyglot.Context.newBuilder().allowAllAccess(true).build()) {
var source = Source.newBuilder("R", new File("/opt/jboss/plot.R")).build();
return ok(ctx.eval(source).as(Function.class).apply(ManagementFactory.getOperatingSystemMXBean().getSystemLoadAverage())).build();
}知道这是怎么回事吗?
发布于 2020-02-07 16:45:55
如果您使用的是GraalVM,那么您实际上并不需要sdk和truffle作为依赖项,并且将Truffle放在类路径上实际上打破了某些假设,并且很可能会导致您的问题。尝试从您的依赖项中删除松露。
https://stackoverflow.com/questions/60103617
复制相似问题