我已经为此苦苦挣扎了几天,但运气不佳。在 jboss wildfly 上运行的 jBPM 6 工作台中,我试图调用自定义工作项处理程序并传入特定于域的对象的实例。
到目前为止,这是我的过程:
在外部 jar 中定义特定于域的类 acme.datamodel.UserBio:datamodel.jar。
通过“工件存储库”-> 上传功能将“datamodel.jar”上传到 jbpm-console。
在 jbpm-console 中创建一个新的存储库并创建一个新的 jbpm 项目。
通过项目编辑器将 datamodel.jar 作为依赖项添加到我的 jbpm 项目。
在 jbpm 项目中创建一个新进程。
创建 acme.datamodel.UserBio 类型的新流程变量。
为我的域特定任务 (Greeting.wid) 创建一个新的工作项定义,如下所示:
import org.drools.core.process.core.datatype.impl.type.StringDataType;
import org.drools.core.process.core.datatype.impl.type.ObjectDataType;
[
[
"name" : "Greeting",
"parameters" : [
"UserBio" : new ObjectDataType("acme.datamodel.UserBio")
],
"results" : [
"Result" : new ObjectDataType("java.util.Map")
],
"displayName" : "Greeting",
"icon" : "../../../global/defaultservicenodeicon.png"
]
]
Run Code Online (Sandbox Code Playgroud)将特定于域的任务 (Greeting) 添加到我的流程工作流中。
将步骤 5 中的流程变量映射为 Greeting 任务的输入参数。
在外部 jar (workitems.jar) 中定义我的自定义工作项处理程序,如下所示:
package …Run Code Online (Sandbox Code Playgroud)