如何从wso2bps中的人工任务事件侦听器获取消息数据

时间:2015-03-05 09:43:11

标签: wso2 listener wso2carbon

创建人工任务实例时,我可以在事件监听器中获取任务信息,如任务ID,任务主题,任务所有者等。示例代码为here。但是我如何获得任务消息数据(或所谓的有效载荷)?我试图使用任务id来在监听器中查询数据库:

select * from ht_message where message_type='INPUT' and  task_id = 7001

但没有结果返回。实际上,此时该任务尚未存储到数据库中。

我还尝试将当前线程休眠几秒钟,等待任务数据保存到数据库。但事实证明,保存操作是在监听器完成后完成的。

1 个答案:

答案 0 :(得分:0)

通过修改源代码解决了这个问题。

  1. 将一个名为“body”的字段及其getter / setter方法添加到 TaskInfo.java Changes to TaskInfo.java
  2. 向接口 MessageDAO.java 添加getData()方法 Changes to MessageDAO.java
  3. Message.java 中实现getData() Changes to Message.jara
  4. 将消息数据填充到 CommonTaskUtil.java 中的任务信息 Changes to CommonTaskUtil.java
  5. 然后在任务列表中,我可以通过

    获取消息数据
    String messageData = taskEventInfo.getTaskInfo().getBody();