Maximo JS 自动化脚本:未定义“importPackage”

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)

为什么我收到这个错误?

Use*_*973 6

将此添加到脚本的开头:

load("nashorn:mozilla_compat.js");
Run Code Online (Sandbox Code Playgroud)

细节:

来自自动化脚本:与 Maximo 7.6.1 的兼容性

... 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