我最近在jBPM 6上迈出了第一步,并设法通过本地安装让事情顺利运行。
然后我尝试使用Docker将相同的东西用于我的演示的可移植性,但成功,除了在一个区域。
安装本地版本的jBPM 6.2.0.Final时,会自动将4个自定义工作项处理程序添加到工作台中。我在我的流程中使用的日志,WebService,休息和服务任务。
安装jbpm-workbench时:6.2.0.Final或jbpm-workbench-showcase:6.2.0.Final现在会出现这些自定义工作项,我无法确定复制CustomWorkItemHandlers.conf和drools的位置。在我的图像扩展名Dockerfile中的session.conf,以便git它来接收它们(或者如果这样就足够了,或者如果.wid文件也是必需的,或者是什么。
我还应该说,我正在Workbench中做所有事情,到目前为止我根本不需要编写或更改任何Java代码,所以我想让Docker版本完全正常工作同样的方式。
如果有人有任何见解,我会非常感激。谢谢!
答案 0 :(得分:1)
显然我是愚蠢的,并且忘记了在某个地方的某个地方,我实际上编辑了我通过工作台使用的存储库的WorkDefinitions.wid文件,并添加了一行以使其像下面那样:
import org.drools.core.process.core.datatype.impl.type.StringDataType;
import org.drools.core.process.core.datatype.impl.type.ObjectDataType;
[
[
"name" : "Email",
"parameters" : [
"From" : new StringDataType(),
"To" : new StringDataType(),
"Subject" : new StringDataType(),
"Body" : new StringDataType()
],
"displayName" : "Email",
"icon" : "defaultemailicon.gif"
],
[
"name" : "Log",
"parameters" : [
"Message" : new StringDataType()
],
"displayName" : "Log",
"icon" : "defaultlogicon.gif"
],
[
"name" : "WebService",
"parameters" : [
"Url" : new StringDataType(),
"Namespace" : new StringDataType(),
"Interface" : new StringDataType(),
"Operation" : new StringDataType(),
"Parameter" : new StringDataType(),
"Endpoint" : new StringDataType(),
"Mode" : new StringDataType()
],
"results" : [
"Result" : new ObjectDataType(),
],
"displayName" : "WS",
"icon" : "defaultservicenodeicon.png"
],
[
"name" : "Rest",
"parameters" : [
"Url" : new StringDataType(),
"Method" : new StringDataType(),
"ConnectTimeout" : new StringDataType(),
"ReadTimeout" : new StringDataType(),
"Username" : new StringDataType(),
"Password" : new StringDataType()
],
"results" : [
"Result" : new ObjectDataType(),
],
"displayName" : "REST",
"icon" : "defaultservicenodeicon.png"
]
]
一旦我再次这样做,那就很好了。很明显,对于Docker镜像,它可以预先添加到存储库中,也可以在之后添加,可能是通过自动化。