Hello.
I'm trying to exchange data between a webservice based on Apache Axis
and a client written in C#, and so far it has been working with few
problems (none that I couldn't solve myself with a bit of web
research). However, now I've tried passing complex data types between
the two, and could not get that to work.
What I did was to declare my data type on the Axis/Java side as an
Object implementing java.io.Serializable, and when I use that as a
parameter/return type in one of my web service methods, Axis includes
an appropriate type declaration in the WSDL (I'm using the code-first
approach, writing the service code as needed, and letting Axis generate
the WSDL) and when I add the web reference to the .NET project, the
Object is recreated perfectly from that. Looking good - so far...
*However* when I actually try to pass such an object to or from a
method, .NET and/or Java (depending on which way I try to pass it)
throws an exception claiming that there's no suitable (de)serializer
for the object.
Now, this may seem naive, but I thought that the default serialization
would be enough to handle a simple object containing nothing but a
handful of fields of primitive data types... So, am I missing anything?
Doing something fundamentally wrong? Or do I seriously have to
explicitly create (de)serialization code for every non-primitive data
type I'd like to pass?
Thanks in advance for any suggestions.