Use*_*973 0 javascript compiler-errors package maximo nashorn
我正在尝试使用来自 Maximo 76 Scripting Features(PDF 下载)的 JS 脚本。
importPackage(java.util)
importPackage(Packages.psdi.server)
var ctx = new HashMap();
ctx.put("url","http://localhost:7001/maximo/oslc/script/countryapi?_lid=wilson&_lpwd=wilson");
service.invokeScript("LIB_HTTPCLIENT",ctx);
var jsonResp = ctx.get("response");
var countries = JSON.parse(jsonResp);
Run Code Online (Sandbox Code Playgroud)
当我执行脚本时,我收到此错误:
ReferenceError: "importPackage" is not defined in <eval> at line number 1
Run Code Online (Sandbox Code Playgroud)
为什么我收到这个错误?
将此添加到脚本的开头:
load("nashorn:mozilla_compat.js");
Run Code Online (Sandbox Code Playgroud)
细节:
... Rhino JavaScript 引擎被 Nashorn (V8) 取代。事实证明,Nashorn 不允许导入整个 Java 包,这说明了为什么我会收到错误消息。
将以下行添加到脚本的开头:
load("nashorn:mozilla_compat.js");本文参考了如何正确构建脚本以利用新的脚本引擎。
来自 Maximo 76 Scripting Features(PDF 下载)。
Java 8 和 Nashorn 引擎:
上面的一些示例是使用基于 jdk 7 的 rhino js 引擎编写的。在 jdk 1.8 中,犀牛引擎已被 Nashorn (V8) 引擎取代。例如 importPackage 命令在那里不起作用。您需要使用 JavaImporter 函数在 Nashorn 中执行相同的操作。您可以查看此 stackoverflow 链接,了解有关从 Rhino 到 Nashorn 的所有更改可能会影响您在 js 中的脚本代码的更多详细信息:
http://stackoverflow.com/questions/22502630/switching-from-rhino-to-nashorn