• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

No deserializer error

 
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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.
<typeMapping
xmlns:ns="urn:finservice"
qname="ns:FinErr"
type="java:finserv.FinErr"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
/>
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?
Thanks
Sridhar Sreenivasan.
 
Bartender
Posts: 2968
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
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
Greenhorn
Posts: 10
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi,
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.
 
reply
    Bookmark Topic Watch Topic
  • New Topic