1 28 29 package com.caucho.ejb.hessian; 30 31 import com.caucho.ejb.AbstractEJBObject; 32 import com.caucho.ejb.AbstractServer; 33 import com.caucho.hessian.io.AbstractHessianOutput; 34 import com.caucho.hessian.io.AbstractSerializer; 35 import com.caucho.hessian.io.HessianRemoteObject; 36 37 import java.io.IOException ; 38 39 public class EJBObjectSerializer extends AbstractSerializer { 40 private static EJBObjectSerializer singleton = new EJBObjectSerializer(); 41 42 static EJBObjectSerializer create() 43 { 44 return singleton; 45 } 46 47 public void writeObject(Object obj, AbstractHessianOutput out) 48 throws IOException 49 { 50 if (obj instanceof AbstractEJBObject) { 51 AbstractEJBObject ejbObject = (AbstractEJBObject) obj; 52 AbstractServer server = ejbObject.__caucho_getServer(); 53 54 out.writeRemote(server.getRemoteObjectClass().getName(), 55 server.getHandleEncoder("hessian").getURL(ejbObject.__caucho_getId())); 56 } 57 else if (obj instanceof HessianRemoteObject) { 58 HessianRemoteObject ejbObject = (HessianRemoteObject) obj; 59 60 out.writeRemote(ejbObject.getHessianType(), 61 ejbObject.getHessianURL()); 62 } 63 else 64 throw new IllegalArgumentException (String.valueOf(obj)); 65 } 66 } 67 | Popular Tags |