Portable client code for using Hessian services. Since this package is independent of all Resin code, its classes can be copied to a non-Resin client jar.

## RPC Proxy Clients - HessianProxyFactory

Most application clients will use HessianProxyFactory to create stub objects. The stub objects can be called with normal Java calls. Because the objects are remote, the client application needs to be able to deal with IOException caused by an unavailable server or a protocol error.

    import com.caucho.hessian.client.HessianProxyFactory;

    ...

    URL url = new URL("http://localhost:8080/ejb/hello");
    HelloHome hello = (HelloHome) factory.create(HelloHome.class, url);

    System.out.println("hello: " + hello.hello());

## Serialization

Since the Hessian protocol serializes Java objects to XML, the HessianSerializerOutput and HessianSerializerInput can be used for serialization.

#### Serialization

    OutputStream os = new FileOutputStream("test.xml");
    HessianOutput out = new HessianSerializerOutput(os);

    out.writeObject(obj);
    os.close();

#### Deserialization

    InputStream is = new FileInputStream("test.xml");
    HessianInput in = new HessianSerializerInput(in);

    Object obj = in.readObject();

    is.close();

## MicroHessianInput and MicroHessianOutput

These two classes only require classes from Java MicroEdition. So they can be extracted separately into a hessian-micro.jar. Because of this restriction and their small size, these two classes are ideal for limited size devices like mobile phones and PDAs.