在 JBPM 中构建失败
Build failed in JBPM
我在工作流中添加了一个脚本任务,并在 pom.xml 中添加了依赖项,如下所示。
enter image description here
并且添加了 Maven 依赖。
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20190722</version>
<scope>provided</scope>
</dependency>
构建失败并出现错误:
[KBase: defaultKieBase]: Process Compilation error Syntax error on
token "import", throw expected org.json.JSONArray cannot be resolved
to
但是构建失败了。你能帮忙吗
enter image description here
脚本任务代码:
import org.json.JSONArray;
import org.json.JSONObject;
JSONArray objects = new JSONArray(Result);
JSONArray finalArray = new JSONArray();
for (int i = 0; i < objects.length(); i++) {
JSONObject jsonObject = objects.getJSONObject(i);
if (jsonObject.getString("ac_id").equals(acc_id)) {
finalArray.put(jsonObject);
}
}
在脚本任务中,我们从不导入 classes,每次调用 class 时都必须键入其完整路径。这不仅适用于库,即使您创建自己的 class(在 jBPM 中称为数据对象),您也必须指定其完整的包路径。即使你想声明一个字符串值,你也必须把 java.lang.String name;
所以这里每次使用都要指定JSONArray
和JSONObject
的路径。所以你必须将你的代码替换为
java.lang.String resTmp = (java.lang.String) kcontext.getVariable("Result");
org.json.JSONArray objects = new org.json.JSONArray(resTmp);
org.json.JSONArray finalArray = new org.json.JSONArray();
for (int i = 0; i < objects.length(); i++) {
JSONObject jsonObject = objects.getJSONObject(i);
if (jsonObject.getString("ac_id").equals(acc_id)) {
finalArray.put(jsonObject);
}
}
使用kcontext.getVariable()
获取任务中变量的实际值,每次调用变量时都必须将其转换为请求的数据类型。
我在工作流中添加了一个脚本任务,并在 pom.xml 中添加了依赖项,如下所示。 enter image description here
并且添加了 Maven 依赖。
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20190722</version>
<scope>provided</scope>
</dependency>
构建失败并出现错误:
[KBase: defaultKieBase]: Process Compilation error Syntax error on token "import", throw expected org.json.JSONArray cannot be resolved to
但是构建失败了。你能帮忙吗
enter image description here
脚本任务代码:
import org.json.JSONArray;
import org.json.JSONObject;
JSONArray objects = new JSONArray(Result);
JSONArray finalArray = new JSONArray();
for (int i = 0; i < objects.length(); i++) {
JSONObject jsonObject = objects.getJSONObject(i);
if (jsonObject.getString("ac_id").equals(acc_id)) {
finalArray.put(jsonObject);
}
}
在脚本任务中,我们从不导入 classes,每次调用 class 时都必须键入其完整路径。这不仅适用于库,即使您创建自己的 class(在 jBPM 中称为数据对象),您也必须指定其完整的包路径。即使你想声明一个字符串值,你也必须把 java.lang.String name;
所以这里每次使用都要指定JSONArray
和JSONObject
的路径。所以你必须将你的代码替换为
java.lang.String resTmp = (java.lang.String) kcontext.getVariable("Result");
org.json.JSONArray objects = new org.json.JSONArray(resTmp);
org.json.JSONArray finalArray = new org.json.JSONArray();
for (int i = 0; i < objects.length(); i++) {
JSONObject jsonObject = objects.getJSONObject(i);
if (jsonObject.getString("ac_id").equals(acc_id)) {
finalArray.put(jsonObject);
}
}
使用kcontext.getVariable()
获取任务中变量的实际值,每次调用变量时都必须将其转换为请求的数据类型。