It's not a secret anymore!
The moose likes Web Services and the fly likes No deserializer error Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Web Services
Bookmark "No deserializer error" Watch "No deserializer error" New topic

No deserializer error

Sridhar Sreenivasan

Joined: Dec 08, 2005
Posts: 10
I have a webservice (implemented in Java, using Axis and Tomcat) FinService that returns a FinCall object when invoked.
The FinCall object has a one dimensional array of double and an array list as paramter. It is a bean class. When returning the ArrayList and setting the ArrayList attribute I pass the parameter as object and return it as object.The ArrayList contains the FinErr objects.
The deploy.wsdd had the typeMapping for the FinCall and the array of double.
Following is what I added to the deploy.wsdd file.
And I deployed the service and invoked it with a java client I got the error that No deserializer for {urn:finservice}FinErr.Can you please tell me what am missing here to make it work?
Sridhar Sreenivasan.
Peer Reynders

Joined: Aug 19, 2005
Posts: 2933
Sorry for going with the obvious, but you didn't mention it: have you made sure that the axis.jar containing org.apache.axis.encoding.ser.BeanDeserializerFactory is in the client's class path?
That class is neither part of the JAX-RPC runtime nor part of the client interface.

If you don't want your client to be dependent on Axis (as some non-Java clients won't have access that library) consider using the Wrapped or Document service mode instead (Service Styles - RPC, Document, Wrapped, and Message). The Wrapped mode seems to be closer to WSDL's rpc/literal messaging mode - axis RPC implies rpc/encoded. However an ArrayList can't be passed with either the Wrapped or Document service mode - it will have to be an array of a JAX-RPC supported type.
Sridhar Sreenivasan

Joined: Dec 08, 2005
Posts: 10
Thanks for the response.Am new to web services so there were things explained in the later part that I have to learn before attempting to implement it.But to clarify on your question on the classpath, yes I do have the classpath pointing to axis.jar. It had worked for an earlier web service similar to the one I had mailed about,except that the FinCall class has only the one dimensional array of double and no ArrayList.
Sridhar Sreenivasan.
I agree. Here's the link:
subject: No deserializer error
It's not a secret anymore!