00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031 package org.objectweb.proactive.core.body.http.util;
00032
00033 import java.io.ByteArrayInputStream;
00034 import java.io.ByteArrayOutputStream;
00035 import java.io.IOException;
00036
00037 import sun.rmi.server.MarshalInputStream;
00038 import sun.rmi.server.MarshalOutputStream;
00039
00040
00047 public class HttpMarshaller {
00048
00054 public static byte[] marshallObject(Object o) {
00055 String result = null;
00056 byte[] buffer = null;
00057 ByteArrayOutputStream out = new ByteArrayOutputStream();
00058 MarshalOutputStream oos = null;
00059 try {
00060 oos = new MarshalOutputStream(out);
00061 oos.writeObject(o);
00062 buffer = out.toByteArray();
00063 } catch (IOException e) {
00064 e.printStackTrace();
00065 } finally {
00066 try {
00067 out.close();
00068 oos.close();
00069 } catch (IOException e) {
00070 e.printStackTrace();
00071 }
00072 }
00073 result = new String(buffer);
00074 return buffer;
00075 }
00076
00077 public static Object unmarshallObject(byte[] bytes) {
00078 Object o = null;
00079 MarshalInputStream in = null;
00080
00081 try {
00082 in = new MarshalInputStream(new ByteArrayInputStream(bytes));
00083 o = in.readObject();
00084 return o;
00085 } catch (IOException e) {
00086 e.printStackTrace();
00087 } catch (ClassNotFoundException e) {
00088 e.printStackTrace();
00089 } finally {
00090 try {
00091 if (in != null) {
00092 in.close();
00093 }
00094 } catch (IOException e1) {
00095 e1.printStackTrace();
00096 }
00097 }
00098
00099 return null;
00100 }
00101 }