spring、apacheavro、allargs构造函数

lrpiutwd  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(278)

我在反序列化已发布到Kafka主题的消息时遇到问题。我使用的是springboot、springcloudstream、apachekafka和apacheavro。我试图反序列化的对象有一个构造函数,它接受两个参数。我从主题中留言时遇到了一个例外:

org.springframework.messaging.MessagingException: Exception thrown while invoking com.foo.bar.messaging.ResponseListener#handleResponse[1 args]; 
nested exception is java.lang.RuntimeException: java.lang.NoSuchMethodException: com.foo.bar.TheObject.<init>()     at org.springframework.cloud.stream.binding.StreamListenerMessageHandler.handleRequestMessage(StreamListenerMessageHandler.java:63) ~[spring-cloud-stream-2.0.1.RELEASE.jar:2.0.1.RELEASE]

正在反序列化的类有一个构造函数,它接受2个参数,如下所示:

public class TheObject {
    private final int thingOne;
    private final int thingTwo;
    @JsonCreator
    public TheObject(@JsonProperty("thingOne") int thingOne, @JsonProperty("thingTwo") int thingTwo) {
      this.thingOne = thingOne;
      this.thingTwo = thingTwo;
    }
}

以前我用过jackson,只是在kafka主题上贴了字符串,所以 @JsonCreator 注解足以告诉Map器如何构造对象,但我现在改为使用arvo。Jackson不再被用于这部连续剧了。我在上面的例子中留下了注解来说明它是如何工作的。
在配置方面,我使用了一个属性: dynamicSchemaGenerationEnabled: true 不显式声明对象模式。对于spring模式注册中心和合流模式注册中心(除了这里描述的问题之外),这似乎都可以很好地工作
有没有与 @JsonCreator 将与arvo反序列化一起工作的注解?
谢谢

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题