Java serialization is very robust and aproven technology. The biggest disadvantage IMHO is that different class versions cannot be handled.
Kryo is an extremely fast binary serialization library. In the popular thrift-protobuf-compare benchmark it's one of the fastest serialization toolkits - and it differs from the fastest in that it does NOT needa schema definition of serialized data, which is a requirement for serialization arbitrary session data. A disadvantage of using kryo basedserialization is that it's binary - you just cannot look how the serialized object graph looks like. This is my favorite serialization strategy, just because of its great performance.
Javolution isa very good and fast xml binding toolkit. The reflection part is written by me and adds the bits that are actually binding POJOs to xml. It is covered well with unit tests, however I cannot guarantee that there's no issue left to solve (actually this serialization strategy wasin use in my own projects, now replaced by kryo based serialization).
XStream basedserialization should be very robust as this is an often used java object binding library. The biggest disadvantage IMHO is the relatively bad performance.