package com.test.hessian; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import com.caucho.hessian.io.Hessian2Input; import com.caucho.hessian.io.Hessian2Output; import com.caucho.hessian.io.SerializerFactory; import com.jarvis.cache.serializer.HessionBigDecimalSerializerFactory; public class HessianTest { private static SerializerFactory _serializerFactory=SerializerFactory.createDefault(); static { _serializerFactory.addFactory(new HessionBigDecimalSerializerFactory()); } public static void main(String[] args) throws Exception { long start=System.currentTimeMillis(); MyTO to=new MyTO(); to.setId("111"); List<String> list=new ArrayList<String>(); list.add("111"); list.add("222"); to.setList(list); byte[] data=null; for(int i=0; i < 1000; i++) { data=write(to); } long end=System.currentTimeMillis(); System.out.println("write:" + (end - start)); System.out.println("size:" + data.length); start=System.currentTimeMillis(); for(int i=0; i < 1000; i++) { read(data); } end=System.currentTimeMillis(); System.out.println("read:" + (end - start)); BigDecimal amount=new BigDecimal(14.0); data=write(amount); System.out.println(read(data)); } private static byte[] write(Object obj) throws Exception { ByteArrayOutputStream outputStream=new ByteArrayOutputStream(); Hessian2Output output=new Hessian2Output(outputStream); output.setSerializerFactory(_serializerFactory); output.writeObject(obj); output.flush(); return outputStream.toByteArray(); } private static Object read(byte[] data) throws Exception { ByteArrayInputStream inputStream=new ByteArrayInputStream(data); Hessian2Input input=new Hessian2Input(inputStream); input.setSerializerFactory(_serializerFactory); // Simple someObject = kryo.readObject(input, Simple.class); Object obj=input.readObject(); input.close(); // System.out.println(someObject.getCacheObject()); return obj; } }