メッセージパックのペイロードをデコードしようとしています。これらは、ペイロードは、私が正しく理解していれば、ペイロードは今一緒に追加される2 msgpackエンコードされたスタックが含まれている次のコードmsgpack-jacksonを使用して、javaで複数のアイテムを持つMsgPackペイロードをデコードしてください。
var w bytes.Buffer
testBatch := []Event{
exampleEvent,
exampleEvent,
}
for _, e := range testBatch {
data, err := e.MarshalMsg(nil)
if err != nil {
t.Fatalf("MarshalMsg failed: %v", err)
}
if _, err := w.Write(data); err != nil {
t.Fatalf("Write: %v", err)
}
}
// w.Bytes() now contain bytes that java will read.
に行くに書かれています。 Javaで復号化のために
、私は次のようlibaray
POJOにメッセージをデコード扱うプロジェクトはmsgpackジャクソンが含まれている
https://github.com/msgpack/msgpack-java
を使用している私は、javaの最初のメッセージをデコードするために管理します
ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());
Event events1 = objectMapper.readValue(in, Event.class);
// Event events2 = objectMapper.readValue(in, Event.class); // this doesn't work
events1
が正しく復号された最初の構造体が含まれていますが、次のコードを使用して私は2番目の構造体を取得できませんでした。
コメント解除events1
ラインが私の目標は、Javaで正しく復号ペイロード内のすべての構造体を得ることです、次のエラーに
com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
at [Source: [email protected]; line: -1, column: 0]
を与えます。私は例を見つけることができた。