Heh, yeah... I guess that kind of describes me too.

So, this wouldn't be fixed by just making com.ibatis....loader.LazyResultLoader 
serializable?

b


Larry Meadors wrote:
I think you are dead on there, Ben.

So, what is the solution? If it were me, I'd ditch the lazy loading,
but I am a session abuser.

;-)

Larry


On 1/2/06, Ben Munat <[EMAIL PROTECTED]> wrote:

Hello,

I'm getting the NotSerializableException on 
com.ibatis....loader.LazyResultLoader when I restart tomcat and it tries to
write/read the serialized http session. The only discussion of this I've found 
in the mailing list is this message
Clinton posted back in November:

"Unfortunately you can't mix lazy loading with serializable caches....

This is not an iBATIS problem, but more of a CGLIB and/or Java problem.  I'm 
sure we could find some crazy means of
managing this, but I'd rather not.  The real solution is to tell Sun that we 
want dynamic proxies for classes, just like
we have for interfaces....and we want them to be serializable."

So, does "serializable cache" include the http session? I'm not trying to do 
anything fancy, but I wouldn't mind being
able to leave the lazy loading turned on either.

Also, to make sure I'm understanding this... the reason why an Ibatis class is 
being dragged into the serialization in
the first place is because lazy loading uses dynamic proxies, right? So my 
domain objects are being wrapped with this
proxy that catches a call for a child and invokes the query on the Ibatis code 
to get the necessary data? And then, when
 tomcat goes to serialize the domain object, it's actually getting the proxy 
and so it tries to serialize the ibatis
class.... right?

If so, then I suppose that I either have to somehow not put my domain objects 
in the session or turn off lazy loading.
Am I on track here?

Ben



Reply via email to