我有一个可流动的工作流,我需要在某个阶段暂停,然后根据JMS消息从JMS监听器重新启动相同的工作流。
@Slf4j
@Component
public class ValidationDelegate extends AbstractBaseUtil {
protected Expression restEndPoint;
@Autowired
private ProcessInstancePkgIdMapRepository repo;
@Override
public void executeInternal(DelegateExecution delegateExecution) {
RuntimeService runtimeService = CommandContextUtil.getProcessEngineConfiguration().getRuntimeService();
runtimeService.suspendProcessInstanceById(delegateExecution.getProcessInstanceId());
ProcessInstancePkgMap pkgMap= new ProcessInstancePkgMap ();
pkgMap.setPkgId(1235L);
pkgMap.setProcessInstanceId(delegateExecution.getProcessInstanceId());
ProcessInstancePkgMap map = repo.save(pkgMap);
log.info("saved map {}", map);
}
}
@Component
public class JMSListener {
@Autowired
private RuntimeService runtimeService;
@Autowired
private ProcessInstancePkgIdMapRepository repo;
@JmsListener(destination = "test.topic", containerFactory = "jmsListenerContainerFactory")
public void receiveMessage(TextMessage message) throws Exception {
ObjectMapper objectMapper = new ObjectMapper();
ValidationMessage validationMessage = objectMapper.readValue(message.getText(), ValidationMessage.class);
ProcessInstancePkgIdMap idMap =
repo.findByPkgId(validationMessage.getPkgId());
runtimeService.activateProcessInstanceById(idMap.getProcessInstanceId());
}
}
不能从流程实例中的服务任务挂起该流程实例。
您要寻找的是这里详细解释的可触发服务任务。简而言之,可触发服务任务是一种触发某些外部工作的模式,这将导致服务任务处于等待状态,然后在接收到JMS主题时可以触发流程实例。然后,委托需要实现TriggerableActivityBehavior
。
我正在使用Spring靴和活动MQ设置一个持久的JMS主题使用者。我能够使用Spring靴@JmsListener注释来使一切正常工作(作为耐用消费者成功运行)。但是,因为我想动态创建侦听器,所以我尝试使用 JmsListener 配置接口来创建它们。 使用主题“消费者”下面的代码可以成功地创建和使用消息。但是,问题是它创造的消费者并不持久。我在工厂中将clientId、setSubscripti
我有一个Spring应用程序在独立的JBoss EAP 6.2中运行(带有嵌入式HornetQ提供程序)。 消息被成功地放在队列中(我可以在jboss eap-6.2\独立\data\MessagingJournal\hornetq-data-1.hq中看到它们,因为队列是持久的),但不会被侦听器拾取(侦听器中的断点不会被命中)。我怀疑配置中缺少或错误的东西,但看不出是什么。JBoss启动时没有任
我正在尝试实现一个OpenDaylight捆绑包,它在流发生变化时接收通知。因此,我实现了DataTreeChangeListener 我错过了什么?完整的代码可在Github上获得 提前感谢!最大值
我正在使用activiti 6为我们的一个项目设计业务流程。这个过程非常简单,它由“用户任务”或“服务任务”的数量以及基于角色的分配组成。然而,我们的客户希望管理员用户能够在任何时间点重新运行之前的任何“用户任务”或“服务任务”。 例如,以下是我的流程: 开始- 客户端希望在流程执行期间的任何时间点,管理员用户都应该能够将工作流执行从:例如状态“User-Task8”更改为Service-Task
问题内容: 我们有一个Java侦听器,它从JBossMQ的队列中读取文本消息。如果必须重新启动JBoss,则侦听器将不会重新连接并重新开始阅读消息。我们只是每2分钟在侦听器的日志文件中收到一条消息,指出该消息无法连接。我们在代码或JBossMQ中没有设置什么吗?我是JMS的新手,因此将非常感谢您的帮助。谢谢。 问题答案: 您应该在客户端代码中实现javax.jms.ExceptionListene
我正在试验Spring Webflux和Spring集成,以从JMS队列创建反应流(Flux)。 我试图从JMS队列(使用Spring集成的IBM MQ)创建一个反应流(Spring Webflux),以便客户端异步获取JMS消息。我相信我已经把一切都正确地连接起来了,因为这些信息正被被动的听众所消耗。然而,我的反应流量流无法显示这些消息。任何帮助都将不胜感激。 这是我用来使我的JMS侦听器响应的