You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geronimo.apache.org by Jason Warner <ja...@gmail.com> on 2008/06/23 18:16:44 UTC

Clusering Configuration samples errors in branches/2.1 using Tomcat

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

Thanks!

-- 
~Jason Warner

Re: Clusering Configuration samples errors in branches/2.1 using Tomcat

Posted by Kevan Miller <ke...@gmail.com>.
On Jun 27, 2008, at 9:55 AM, Jason Warner wrote:

> It seems my understanding of how classloaders work is not as  
> thorough as it could be.  From what I can see, juli doesn't include  
> a UniqueId class, so I'm not sure how we could get a conflict  
> there.  Could you explain how that could be happening?  I could take  
> a look at it for a bit today, though I think it'd be good to have  
> Gianny weigh in when he returns.

This is really a dev@ discussion (has been for a while ;-)

It's the tribes dependency that is causing this problem. The juli  
dependency is an accident-waiting-to-happen (it might cause similar  
ClassCastExceptions for juli Classes).

Running in the WAR ClassLoader, we're going to pickup UniqueId from  
the tomcat6 ClassLoader.

Running in the Wadi system thread dispatching Wadi envelopes, UniqueId  
will be found in the wadi-clustering ClassLoader.

The UniqueId classes (or object instances) from these different  
ClassLoaders are incompatible (they aren't the same classes). We need  
to sort out these plugin dependencies. So, that we'll only load  
UniqueId from a single ClassLoader.

--kevan


Re: Clusering Configuration samples errors in branches/2.1 using Tomcat

Posted by Jason Warner <ja...@gmail.com>.
It seems my understanding of how classloaders work is not as thorough as it
could be.  From what I can see, juli doesn't include a UniqueId class, so
I'm not sure how we could get a conflict there.  Could you explain how that
could be happening?  I could take a look at it for a bit today, though I
think it'd be good to have Gianny weigh in when he returns.

On Fri, Jun 27, 2008 at 9:32 AM, Kevan Miller <ke...@gmail.com>
wrote:

>
> On Jun 25, 2008, at 12:05 PM, Jason Warner wrote:
>
> 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 :)
>
>
> I'm seeing two ClassLoaders in play when this error is occurring:
>
> org.apache.geronimo.configs/wadi-clustering/2.1.2-SNAPSHOT/car
> org.apache.geronimo.configs/tomcat6/2.1.2-SNAPSHOT/car
>
> The following dependencies in plugins/clustering/wadi-clustering/pom.xml
> would seem to be a problem:
>
>         <dependency>
>             <groupId>org.apache.tomcat</groupId>
>             <artifactId>juli</artifactId>
>         </dependency>
>
>         <dependency>
>             <groupId>org.apache.tomcat</groupId>
>             <artifactId>tribes</artifactId>
>         </dependency>
>
> They can cause us to load tribes or juli classes within two different
> ClassLoaders and result in the ClassCastException that you're experiencing.
>
> This will need to be straightened out. I haven't looked at how to
> straighten this out. You want to look? Or Gianny should be back soon...
>
> --kevan
>
>


-- 
~Jason Warner

Re: Clusering Configuration samples errors in branches/2.1 using Tomcat

Posted by Kevan Miller <ke...@gmail.com>.
On Jun 25, 2008, at 12:05 PM, Jason Warner wrote:

> 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 :)

I'm seeing two ClassLoaders in play when this error is occurring:

org.apache.geronimo.configs/wadi-clustering/2.1.2-SNAPSHOT/car
org.apache.geronimo.configs/tomcat6/2.1.2-SNAPSHOT/car

The following dependencies in plugins/clustering/wadi-clustering/ 
pom.xml would seem to be a problem:

         <dependency>
             <groupId>org.apache.tomcat</groupId>
             <artifactId>juli</artifactId>
         </dependency>

         <dependency>
             <groupId>org.apache.tomcat</groupId>
             <artifactId>tribes</artifactId>
         </dependency>

They can cause us to load tribes or juli classes within two different  
ClassLoaders and result in the ClassCastException that you're  
experiencing.

This will need to be straightened out. I haven't looked at how to  
straighten this out. You want to look? Or Gianny should be back soon...

--kevan


Re: Clusering Configuration samples errors in branches/2.1 using Tomcat

Posted by Jason Warner <ja...@gmail.com>.
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 <ja...@gmail.com> 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 <ke...@gmail.com>
> 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

Re: Clusering Configuration samples errors in branches/2.1 using Tomcat

Posted by Jason Warner <ja...@gmail.com>.
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 <ke...@gmail.com>
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

Re: Clusering Configuration samples errors in branches/2.1 using Tomcat

Posted by Kevan Miller <ke...@gmail.com>.
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