I know this has been discussed before, but I am still having a few issues with 
it here.  I am doing work on an app where we use Hibernate for the 
persistence layer.  We have a couple of client apps that use EJB's.  The 
issue that I am having is that with Hibernate if I have a lazy-loaded 
collection Hessian bombs out horribly (It internally catches the 
LazyInitializationException but then it writes the fault out to the stream.  
The client parser errors out because it does not expect to see a fault in the 
middle of the stream.  Same problem occurs with Burlap.)

>From the archives it looks like there are a couple of suggestions:  1. 
readResolve()/writeReplace() code.  2. do not include the hibernate jars in 
the client or set the sendCollectionType option (seems you must still fully 
initialize all collections though which is a problem for me)  3. Implement a 
custom SerializerFactory. 

For my purposes, it looks like option 3 is the best one for me.  The 
collections that are lazy-loaded will not be accessed outside a session and 
if any attempts are made to access the data in the session I just want to 
throw an Exception.   Seems easy enough...  Unfortunately, I am having 
problems determining exactly how to actually set it up.   From what I read, I 
should be able to implement an AbstractSerializerFactory and then register 
that with hessian.   Unfortunately, when using the EJBServlet the 
QSerializerFactory is hardcoded into the HibernateWriter and is not 
accessible   Am I just overlooking something?


resin-interest mailing list

Reply via email to