【发布时间】:2020-11-06 14:39:15
【问题描述】:
Kafka AvroSchema 未生成,当类具有 datatype 作为 Object class 的字段时。任何 ? 架构 。 jackson databind 无法生成 avro 模式的原因是什么。
ObjectMapper mapperss = new ObjectMapper(new AvroFactory());
AvroSchemaGenerator gen = new AvroSchemaGenerator();
try {
mapperss.acceptJsonFormatVisitor(Sample.class, gen);
} catch (JsonMappingException jme){
jme.printStackTrace();
}
AvroSchema schemaWrapper = gen.getGeneratedSchema();
org.apache.avro.Schema avroSchema = schemaWrapper.getAvroSchema();
String asJson = avroSchema.toString(true);
System.out.println("Schema Generated " + asJson);
import java.io.Serializable;
import javax.validation.Valid;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;
@JsonInclude(Include.NON_EMPTY)
@JsonIgnoreProperties(
ignoreUnknown = true
)
public class Sample implements Serializable {
@JsonProperty("additionalFields")
@Valid
private Object additionalFields = null;
public Sample() {
}
public Sample additionalFields(Object additionalFields) {
this.additionalFields = additionalFields;
return this;
}
public Object getAdditionalFields() {
return this.additionalFields;
}
public void setAdditionalFields(Object additionalFields) {
this.additionalFields = additionalFields;
}
}
【问题讨论】:
标签: java spring apache-kafka jackson-databind