0
反序列化對象protostuff獲得以下異常,而在消費者卡夫卡反序列化字節[]到protostuff對象問題在消費者卡夫卡
java.lang.NegativeArraySizeException
at com.dyuproject.protostuff.GraphIOUtil.mergeDelimitedFrom(GraphIOUtil.java:209)
at com.gme.protocols.protostuff.GmeTrade.readExternal(GmeTrade.java:2772)
at java.io.ObjectInputStream.readExternalData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
轉換protostuff對象爲byte []使用以下代碼。
public static byte[] toBytes(Object o)
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(o);
oos.close();
byte[] b = baos.toByteArray();
return b;
}
catch (IOException e)
{
return new byte[0];
}
}
發送的字節[]使用卡夫卡生產者與主題「XX」,其中字節[]長度只是240 收到的使用卡夫卡消費者該記錄。 record.value()。length(byte [])長度是相同的240我從製作方發送的。
使用以下代碼將該字節[]反序列化爲對象。
public static Object fromBytes(byte[] bytes)
{
try
{
return new ObjectInputStream(new ByteArrayInputStream(bytes)).readObject();
}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}
獲得上述例外。我做錯了什麼? 使用kafka_2.11-0.9.0.0作爲參考。還有其他需要的東西嗎?