我们在大多数项目中一直使用 camunda 7.4 版本以及 camunda-bpm-spring-boot-starter 1.1.0。
我们有一个项目,在 camunda 流中,我们尝试将消息发布到消息代理,该消息在内部由另一个系统使用,并将新消息重新发布到同一个消息代理。然后我们触发一个 receiveTask 来接收该消息并进一步处理。为了收听传入的消息,我们使用 org.springframework.amqp.core.MessageListener 并在 onMessage() 方法中为 receiveTask 定义消息关联。但是我们这样做会遇到以下错误
org.camunda.bpm.engine.MismatchingMessageCorrelationException:无法关联消息“ReceiveAmsharedResponse”:没有流程定义或执行与参数匹配
我们试图找出问题出在哪里?是在我们使用的camunda 版本中还是问题出在receiveTask 的使用上。我们尝试了https://docs.camunda.org/manual/7.4/reference/bpmn20/tasks/receive-task/ 中定义的所有方法,但没有成功。
对于 createMessageCorrelation 方法,我们得到了上述错误。对于其他方法,我们得到一个 NPE,因为 EventSubscription/Execution 对象为空。
示例 Camunda 流接收任务用法如下:
<bpmn2:receiveTask id="ReceiveTask" name="Receive Task" messageRef="Message_06nl07f">
<bpmn2:incoming>SequenceFlow_xyz</bpmn2:incoming>
<bpmn2:outgoing>SequenceFlow_190m9nx</bpmn2:outgoing>
</bpmn2:receiveTask>
......
......
<bpmn2:message id="Message_06nl07f" name="Message" />
Run Code Online (Sandbox Code Playgroud)
和示例消息关联代码:
class XYZ implements MessageListener {
onMessage() {
runtimeService.createMessageCorrelation("Message")
.processInstanceBusinessKey(resourceId)
.setVariable(ACTIVITY_RESULT, activityResult)
.correlate();
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激?
谢谢,维斯瓦纳特
我正在使用表单验证实现示例Spring MVC表单。我有一个复杂的类型Address作为Student表单bean的bean属性。并且我@NotEmpty为Addressbean属性添加了表单验证。但是,UI中并未反映出同样的情况。但是表单验证适用于其他原始类型的Student表单bean。
所以,验证完全适用于Student表单bean而不是嵌套复杂类型,如Address内Student的form bean。
我正在尝试了解原因和解决方法。
春季版本4.0+。休眠验证器API:5.2.4
Student POJO:
package com.xyz.form.beans;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.Past;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
import com.xyz.validators.DateNotEmpty;
import com.xyz.validators.ListNotEmpty;
public class Student {
@Size(min = 2, max = 30)
private String firstName;
@Size(min = 2, max = 30)
private String lastName;
@NotEmpty
private String gender;
@DateNotEmpty
@Past
private Date DOB;
private String email;
private String mobileNumber;
@ListNotEmpty
private List<String> …Run Code Online (Sandbox Code Playgroud)