데이터를 protobuff 형식으로 serialize하고이를 Avro serialization으로 변환하려고합니다.프로토 타입을 avro로 변환
나는 문제가 다시 protobuf 객체 인 o를 수득
ProtoTest.Msg msg = buildMessage();
ProtobufData protobufData = ProtobufData.get();
Schema protoSchema = protobufData.getSchema(ProtoTest.Msg.class);
Object o = protobufData.newRecord(msg, protoSchema);
사용하여 프로토 데이터를 판독 할 없다. 지금은 같은 스키마
GenericDatumWriter genericDatumWriter = new GenericDatumWriter(protoSchema);
OutputStream out = new ByteArrayOutputStream();
Encoder encoder = EncoderFactory.get().binaryEncoder(out, null);
genericDatumWriter.write(o, encoder);
그러나 위의 코드를 실행하는 브로으로 오을 작성하려면이
java.lang.ClassCastException: example.avro.ProtoTest$Msg cannot be cast to org.apache.avro.generic.IndexedRecord
at org.apache.avro.generic.GenericData.getField(GenericData.java:526)
at org.apache.avro.generic.GenericData.getField(GenericData.java:541)
at org.apache.avro.generic.GenericDatumWriter.writeRecord(GenericDatumWriter.java:104)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:66)
at org.apache.avro.generic.GenericDatumWriter.write(GenericDatumWriter.java:58)
at hermes.mediationOrchestrator.AvroFileWriteTest.testWriter3(AvroFileWriteTest.java:115)
가 어떻게 프로토 객체를 변형 할 수 쓰기 방법에서 다음 예외가 발생합니다 avro 객체로?
감사합니다. 로넨.
안녕 Ronen에, 당신은이 문제를 극복 할 수있는 방법을 발견했다? 나는 같은 것을 경험하고있다. – forhas