At 06:20 PM 15/01/2004 -0600, you wrote:
Here's a weird thing I didn't expect from merlin...

Let's say I have Service A in a composite block that exports the following method:

byte[] fetchObject(String key)

This method returns a serialized object from some third-party jar. I built the byte[] method so that I would have to include my third-party jar (and it's dependencies) in my container descriptor. Being a byte[], merlin was quite content to start this composite block and the other composites that depended on the service with only adding the Service A's api jar to the container descriptor.

However, as soon a consumer composite invoked fetchObject, and attempted to reconstitute the byte[] into it's original object type, I get a ClassCastException, even though the block.xml of the consumer block included the same third-party jar (and its dependent jars) in its own classloader.

It wasn't until I added the third-party (and it's dependendt jars) to the outer container's classloader that the ClassCastException went away, even those these jars were contained in the block.xml of both consumer and provider.

Does merlin not like serialized objects across composite block boundaries?

Timothy


Not a Merlin user, but sounds a lot like a class loader issue. I suspect that your service is loading a copy of the jar but the outer container had a different version (or no version at all). Just a thought.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


----------------------------------------------------------------------- Is this the 5 minute argument or the full half-hour?


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to