Hi Chris,
Thanks for the link. I found the following workaround: instead of placing my
Proxy object in the HttpSession, I put it in a serializable wrapper class
first, and then put the wrapper in the HttpSession. The wrapper overrides
the default de-serialization to set a different class-loader as the
thread-local class-loader. Now, session replication completes without
throwing the exception.
Here is the code of the Wrapper:
public class ProxyWrapper implements Serializable
{
private Object Proxy;
public ProxyWrapper(Object proxy)
{
Proxy = proxy;
}
public Object getProxy()
{
return Proxy;
}
private void readObject(java.io.ObjectInputStream in)
throws IOException, ClassNotFoundException
{
ClassLoader cl = Thread.currentThread().getContextClassLoader();
try
{
ClassLoader myCl = this.getClass().getClassLoader();
Thread.currentThread().setContextClassLoader(myCl);
in.defaultReadObject();
}
finally
{
Thread.currentThread().setContextClassLoader(cl);
}
}
}
IMHO, this, as well as the dynamic-proxy documentation, implies there is a
problem in Tomcat's session-replication implementation.
Naaman
--
View this message in context:
http://www.nabble.com/Problem-serializing-JDK-dynamic-proxies-tp16467407p16521737.html
Sent from the Tomcat - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To start a new topic, e-mail: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]