我有一个JBPM流程,在这个流程中,我添加了服务任务Rest,在任务输入中,我想通过配置文件设置url,而不是直接在源字段设置。在任务输入中,我想通过配置文件设置url,而不是直接在源字段中设置。
我研究了3天,但还是没有找到。
有没有什么选项可以像这样设置url值。
http:/{ip-address}{port}update。
在上面的例子中,你可以看到ip-address和port应该是从配置文件或属性文件中读取的。
接下来的部分就是检查一切是否正常。
我可以实现这样的结果。
Config config = new Config();
/** Output Variables in a HashMap ***/
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("Result", msg); // ("name of variable", value)
resultMap.put("url", "http://" + config.getProperty("ip") + config.getProperty("port") + "/update");
manager.completeWorkItem(workItem.getId(), resultMap);
新编辑
也许我写的有点混乱,但是像这样,整个url需要在config中,而我只想从config中读取ip和port的值,并且像这样手动写入源码:http:/(我手动写的)+ip : port(从config中读取)update(我手动写的)。因此,正如我上面写的,我只想从config中读取ip和port的值,这就是为什么我把它们写成{http:/(我手动写的)+ip : port(从config读取的)update(我手动写的)。这就是为什么我把它们写成{ipVar}:{portVar}的原因。
新的编辑:谢谢你的详细解答,也许是我写得太混乱了,所以我把它写成了{ipVar}:{portVar}。也许我写的很混乱,所以我会解释一下这张图片。
你看我的观点是只从配置中获取ip和端口,而其他任何用户想写的东西,因为可以有其他的端点......。
例如:http:/{ip}:{port}createuserbashir 或https:/{ip}:8080asdupdate。
我想从config中获取ip和port作为变量,并在我需要的时候使用它,比如这个URL。
你有两个解决方案。
我希望我的回答是清楚和有帮助的。我一直是这样做的。
编辑:你必须修改你的代码,如下所示
Config config = new Config();
/** Output Variables in a HashMap ***/
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap.put("Result", msg); // ("name of variable", value)
resultMap.put("url", "http://" + config.getProperty("ip") +":"+ config.getProperty("port"));
manager.completeWorkItem(workItem.getId(), resultMap);
在WorkDefinitions中。
[
"name" : "WorkItemTest",
"parameters" : [ //inputs
"stringVar " : new StringDataType(),
],
"results" : [ //outputs
"url" : new ObjectDataType(),
],
"displayName" : "WorkItemTest",
"icon" : "defaultservicenodeicon.png"
]
然后,你去 变量定义 并定义一个名为 网址 和 finalURL 字符串类型如下(法语)
之后,你画出你的任务并输出如下。
现在您的url从配置文件中被分配到一个变量url中,现在您需要将url和端点(ip:portupdate)连接起来。为此您需要添加一个脚本任务,在其中您将添加这行代码。
kcontext.setVariable("finalURL",url+"/update"); //this will assign the url + "/update" to the variable finalURL
最后一步, 在你分享的截图中, 对于url, 你从combobox中选择名为finalURL的变量, 如下图所示