• 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
  • Ron McLeod
  • Rob Spoor
  • Tim Cooke
  • Junilu Lacar
Sheriffs:
  • Henry Wong
  • Liutauras Vilda
  • Jeanne Boyarsky
Saloon Keepers:
  • Jesse Silverman
  • Tim Holloway
  • Stephan van Hulst
  • Tim Moores
  • Carey Brown
Bartenders:
  • Al Hobbs
  • Mikalai Zaikin
  • Piet Souris

Confused about axis deserializer (it don't work!)

 
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hello all! New to the web services world, am using Axis 1.1 and Tomcat 5.0.25 to code a client for various web services (RPC types from www.xmethods.com), I can get the basic types to work fine (primitives, Strings, HashMap, etc), but anything above that causes the following exception stack:

- Exception:
org.xml.sax.SAXException: Deserializing parameter 'soapVal': could not find deserializer for type {urn:CompanyInfo}CompanyInfoResult
at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:302)
at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:963)
at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:198)
at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:722)
at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:233)
at org.apache.axis.message.RPCElement.getParams(RPCElement.java:347)
at org.apache.axis.client.Call.invoke(Call.java:2272)
at org.apache.axis.client.Call.invoke(Call.java:2171)
at org.apache.wsif.providers.soap.apacheaxis.WSIFOperation_ApacheAxis.invokeAXISRPCStyle(Lorg.apache.axis.client.Call;Lorg.apache.wsif.WSIFMessage;Lorg.apache.wsif.WSIFMessage;Lorg.apache.wsif.WSIFMessage;Lorg.apache.wsif.util.jms.WSIFJMSDestination Z(Unknown Source)
at org.apache.wsif.providers.soap.apacheaxis.WSIFOperation_ApacheAxis.invokeRequestResponseOperation(Lorg.apache.wsif.WSIFMessage;Lorg.apache.wsif.WSIFMessage;Lorg.apache.wsif.WSIFMessage Z(Unknown Source)
at org.apache.wsif.providers.soap.apacheaxis.WSIFOperation_ApacheAxis.executeRequestResponseOperation(Lorg.apache.wsif.WSIFMessage;Lorg.apache.wsif.WSIFMessage;Lorg.apache.wsif.WSIFMessage Z(Unknown Source)
at org.apache.wsif.base.WSIFClientProxy.invoke(Ljava.lang.Object;Ljava.lang.reflect.Method;[Ljava.lang.Object Ljava.lang.Object;(Unknown Source)
at $Proxy3.doCompanyInfo(Ljava.lang.String;Ljava.lang.String;Ljava.lang.String Lcom.emdweb.common.utils.test.companyInfo.CompanyInfoResult;(Unknown Source)

I've been trying to find answers everywhere (including the axis-dev mailing list) but everything is about the web service side and WSDD, which of course I have no access to because I am coding only the client

The web services work via the website, so I didn't think that's the problem. The WSDL is translated using WSDL2Java, and the resulting object ("CompanyInfoResut" in this example) has the following code:

/**
* Get Custom Deserializer
*/
public static org.apache.axis.encoding.Deserializer getDeserializer(
java.lang.String mechType,
java.lang.Class _javaType,
javax.xml.namespace.QName _xmlType) {
return
new org.apache.axis.encoding.ser.BeanDeserializer(
_javaType, _xmlType, typeDesc);
}

Since this is auto-genned by the Axis tool, why can't axis find it? Am I missing something? Is there anything (registering or otherwise) I can do client-side to make Axis "see"/"use" this deserializer?

Really confused as to why I can get the basic WS' to work fine, but others translated from the same tool (WSDL2Java) keep giving me this exception/fault, any thoughts?

Thanks in advance!
And cheers everyone

Luiz
 
Ranch Hand
Posts: 548
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
there can be various reasons like

1.if you use any custom types that cannot be handled by axis then they need to registered in client side's client-config.wsdd

2. is your WSDL adheres to BP 1.0+ which AXIS follows
etc.
 
Luiz Sousa
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Oh okay, I was under the impressing that the deployment/wsdd files were for the server/service provider only, none of the articles and tutorials I had looked for mentioned a client-side one thank you! I will look into this promptly!
Very much appreaciated!
cheers

Luiz
 
reply
    Bookmark Topic Watch Topic
  • New Topic