当我切换到XStream作为事件序列化器时,一切都很好。不执行额外的偶数实例,在命令处理程序中创建的事件与在EventHandler中处理的事件相同。
这是怎么回事?
经过一个小时的调试,我发现了自己的错误;-)。正如Axon文档所说,当使用Jackson作为EventSerializer时,必须遵守Jackson约定,而我没有这样做。我所有的聚合ID都是这个聚合ID的子类:
public abstract class AggregateId {
private final UUID id;
public AggregateId() {
this(UUID.randomUUID());
}
public AggregateId(UUID id) {
this.id = id;
}
public String toString() {
return id.toString();
}
public UUID getValue() {
return id;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
AggregateId that = (AggregateId) o;
return id.equals(that.id);
}
@Override
public int hashCode() {
return Objects.hash(id);
}
}
拥有一个没有getter的私有字段id,以及返回该id的getvalue
是愚弄Jackson(和我自己)的最佳方法。
将ID
重命名为value
后,所有测试都是绿色的。
有没有人成功地为 S3 事件实施了基于 Java 的请求处理程序? 我的班级: 错误消息: JSON 解析期间发生错误:java.lang.RuntimeException java.lang.RuntimeException:JSON 解析期间发生错误 由以下原因引起:java.io.UncheckedIOException: com.fasterxml.jackson.databind.Jso
好的,我做了更改,下面是我得到的JSON响应 它现在导致一个嵌套异常是java.lang.IllegalArgumentException:参数类型不匹配 NestedServletException:请求处理失败;嵌套异常是java.lang.IllegalArgumentException:参数类型不匹配org.springframework.web.servlet.framework.ser
问题内容: 每当我尝试序列化文件时,都会收到错误消息:FileNotFound。不知道为什么。这是我的FileHelper代码: 问题答案:
目前,我正在使用Avro1.8.0序列化/反序列化对象,但面临一些问题,特别是java.util.Map对象。不面临其他类型对象的问题。 这里的示例代码- 在deserialize方法中,我试图根据输入数据获取模式,但avro抛出错误- 多谢了。
我在用轴突事件跟踪处理器。有时事件需要10秒才能处理。 这似乎导致消息再次被处理,并出现在日志“释放令牌X/0的声明失败。它由另一个节点拥有”中。 如果我增加段数,它不会记录此事件,但事件仍被处理两次,所以我认为这可能会引起误解。 (我想我搞错了) 我已经尝试调整fetchDelay、cleanupDelay和TokenClaimInterval。没有一个解决了这个问题。我是不是缺了什么东西? 编
我可以在Axon中顺序处理的两个事件之间放置一个序列(或以一定的时间间隔执行)。这两个事件同时创建。下面是示例事件。 因为我的第二个事件取决于第一个事件的执行结果。我正在使用RabbitMq发布消息。