PDA

View Full Version : Encode a map, decode a map (using Hessian)


netsql
01-09-2014, 11:37 PM
This code fails, cut/paste. Please help me encode a map to byte[], and decode a map. (I'll send it myself to server). tia


public static void main(String[] args) throws Exception {
Map row = new HashMap();
row.put("a", 1);
ByteBuffer b = encMap(row);
System.out.println(b);

Map ret = decMap(b);
System.out.println(ret);
}

public static ByteBuffer encMap(Map map) throws IOException {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
Hessian2Output out= new Hessian2Output(bos);
Serializer ser = HFac.getSerializerFactory().getSerializer(Map.clas s);
ser.writeObject(map,out);
byte[] b = bos.toByteArray();
out.close();
return ByteBuffer.wrap(b);
}

public static Map<String, Object> decMap(ByteBuffer bb) throws IOException {
InputStream bs = new ByteArrayInputStream(bb.array());
Hessian2Input in = HFac.createHessian2Input(bs);
Deserializer der = HFac.getSerializerFactory().getDeserializer(Map.cl ass);
Map m2 = (Map) der.readMap(in);
in.close();
return m2;
}