-
-
Notifications
You must be signed in to change notification settings - Fork 144
Closed
Description
Hi,
I'm trying to serialize to following class to protobuf using jackson dataformats:
public class HeaderTest
{
@JsonProperty("version")
private short version;
@JsonProperty("messageId")
private UUID messageId;
public HeaderTest(short version, UUID messageId)
{
this.messageId = messageId;
this.version = version;
}
public short getVersion() {
return version;
}
public void setVersion(short version) {
this.version = version;
}
public UUID getMessageId() {
return messageId;
}
public void setMessageId(UUID messageId) {
this.messageId = messageId;
}
}
With the following code:
ProtobufMapper mapper = new ProtobufMapper();
**ProtobufSchema schemaWrapper = mapper.generateSchemaFor(HeaderTest.class);**
NativeProtobufSchema nativeProtobufSchema = schemaWrapper.getSource();
String asProtofile = nativeProtobufSchema.toString();
The bold line throws this exception:
java.lang.UnsupportedOperationException: 'Integer' type not supported as root type by protobuf
at com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor._throwUnsupported(ProtoBufSchemaVisitor.java:141)
at com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtoBufSchemaVisitor.expectIntegerFormat(ProtoBufSchemaVisitor.java:112)
at com.fasterxml.jackson.databind.ser.std.StdSerializer.visitIntFormat(StdSerializer.java:215)
at com.fasterxml.jackson.databind.ser.std.NumberSerializers$Base.acceptJsonFormatVisitor(NumberSerializers.java:75)
at com.fasterxml.jackson.databind.ser.std.NumberSerializers$ShortSerializer.acceptJsonFormatVisitor(NumberSerializers.java:103)
at com.fasterxml.jackson.dataformat.protobuf.schemagen.ProtobuffSchemaHelper.acceptTypeElement(ProtobuffSchemaHelper.java:49)
at com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.getDataType(MessageElementVisitor.java:122)
at com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.buildFieldElement(MessageElementVisitor.java:86)
at com.fasterxml.jackson.dataformat.protobuf.schemagen.MessageElementVisitor.optionalProperty(MessageElementVisitor.java:65)
at com.fasterxml.jackson.databind.ser.BeanPropertyWriter.depositSchemaProperty(BeanPropertyWriter.java:805)
at com.fasterxml.jackson.databind.ser.std.BeanSerializerBase.acceptJsonFormatVisitor(BeanSerializerBase.java:833)
at com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.acceptJsonFormatVisitor(DefaultSerializerProvider.java:580)
at com.fasterxml.jackson.databind.ObjectMapper.acceptJsonFormatVisitor(ObjectMapper.java:3641)
at com.fasterxml.jackson.databind.ObjectMapper.acceptJsonFormatVisitor(ObjectMapper.java:3620)
at com.fasterxml.jackson.dataformat.protobuf.ProtobufMapper.generateSchemaFor(ProtobufMapper.java:95)
Any ideas why I can't serialize those types? I couldn't find any online resource about that issue.
Thanks