I took a look at the classloader being used. It only contains one instance of UniqueId in any of the parent classloaders. I took a quick look at the changes between Wadi 2.0-M10 and 2.0, and there is indeed a significant amount of change. In fact, this error stems from a class that didn't even exist in 2.0-M10. I'll keep looking to see if I can figure out what's going on, but any suggestions of other possible issues would definitely not be ignored :)
On Mon, Jun 23, 2008 at 2:45 PM, Jason Warner <[EMAIL PROTECTED]> wrote: > Hi Kevan, > > Thanks for the reply. I was able to deploy succesfully on 2.1.2-SNAPSHOT > with Jetty just fine so it appears to be just Tomcat. I'll follow your > advice about using the debugger and post anything useful I come across. > > > On Mon, Jun 23, 2008 at 2:37 PM, Kevan Miller <[EMAIL PROTECTED]> > wrote: > >> >> On Jun 23, 2008, at 12:16 PM, Jason Warner wrote: >> >> I've been messing around a little bit with clustering by following the >> directions for clustering configuration for jetty[1] but modifying the >> instructions to work with tomcat. I've found that the sample app linked in >> the example deploys succesfully on the 2.1.1 release but not on the latest >> branches/2.1. A class cast exception is received when attempting to deploy >> the app[2]. It seems that 2.1.1 uses a milestone release of 2.0 rather than >> the full released version. I updated 2.1.1 locally to use the full 2.0 >> release of wadi, and that resulted in the same error I was seeing on >> branches/2.1. Anybody have any thoughts on what could cause this or how to >> fix it? >> >> [1] >> http://cwiki.apache.org/GMOxDEV/clustering-configuration-for-jetty.html >> >> [2] >> >> 12:00:33,876 ERROR [BasicServiceSpaceDispatcher] See nested >> org.codehaus.wadi.group.MessageExchangeException: >> java.lang.ClassCastException: cannot assign instance of >> org.apache.catalina.tribes.UniqueId to field >> org.codehaus.wadi.tribes.TribesPeer.uniqueId of type >> org.apache.catalina.tribes.UniqueId in instance of >> org.codehaus.wadi.tribes.TribesPeer >> at >> org.codehaus.wadi.servicespace.basic.TransformEnvelopeInterceptor.onInboundEnvelope(TransformEnvelopeInterceptor.java:46) >> at >> org.codehaus.wadi.group.impl.AbstractDispatcher.onInboundEnvelope(AbstractDispatcher.java:308) >> at >> org.codehaus.wadi.group.impl.AbstractDispatcher.onEnvelope(AbstractDispatcher.java:92) >> at >> org.codehaus.wadi.servicespace.basic.ServiceSpaceEndpoint.dispatch(ServiceSpaceEndpoint.java:49) >> at >> org.codehaus.wadi.group.impl.ServiceEndpointWrapper.dispatch(ServiceEndpointWrapper.java:50) >> at >> org.codehaus.wadi.group.impl.BasicEnvelopeDispatcherManager$DispatchRunner.run(BasicEnvelopeDispatcherManager.java:121) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:650) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:675) >> at java.lang.Thread.run(Thread.java:613) >> Caused by: java.lang.ClassCastException: cannot assign instance of >> org.apache.catalina.tribes.UniqueId to field >> org.codehaus.wadi.tribes.TribesPeer.uniqueId of type >> org.apache.catalina.tribes.UniqueId in instance of >> org.codehaus.wadi.tribes.TribesPeer >> at >> java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2004) >> at >> java.io.ObjectStreamClass.setObjFieldValues(ObjectStreamClass.java:1184) >> at >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1914) >> at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) >> at >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) >> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) >> at >> java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908) >> at >> java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832) >> at >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719) >> at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305) >> at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348) >> at >> org.codehaus.wadi.servicespace.basic.BasicServiceSpaceEnvelopeHelper.transformInboundEnvelope(BasicServiceSpaceEnvelopeHelper.java:123) >> at >> org.codehaus.wadi.servicespace.basic.TransformEnvelopeInterceptor.onInboundEnvelope(TransformEnvelopeInterceptor.java:44) >> ... 8 more >> >> >> Hi Jason, >> Is the example working with Jetty? Or is it just 2.1.2-SNAPSHOT with >> Tomcat that is broken? >> >> I see there were changes to >> http://svn.codehaus.org/wadi/tags/2.0/wadi-core/src/main/java/org/codehaus/wadi/servicespace/basic/between >> 2.0-M10 and 2.0. Seems to be a Classloader problem related to Wadi >> 2.0. Suggest you use a debugger to inspect the Classloader being used to >> deserialize the UniqueId object. We seem to be loading UniqueId classes from >> two different Classloaders -- thus the ClassCastException. Once we figure >> out the two Classloaders being used, can start to sort out the >> inconsitencies... >> >> --kevan >> > > > > -- > ~Jason Warner -- ~Jason Warner
