Have a look at the code example in the Javadocs.
If you have a look at javadoc for com.avaje.ebean.io.BeanObjectOutputStream there is a decent code example.
The guts is that you can use SerializeControl to control whether a object graph is serialised in 'byte code generated' form or in 'vanilla' form.
Specifically, if you want to send the object graph to a remote jvm then you may choose to serialize the object graph to 'vanilla' form so that there is no need for ANY Ebean code to be installed at the remote jvm.
The downside to doing this is that lazy loading and all column optimistic concurrency checking will not work (as they require the 'byte code generation').