Hi,

I have a problem with the Axis serializer/deserilaizer. Perhaps this is an 
offtopic item, but it would be very nice if someone can give any useful hints.

That's what I wanna to do:
I want to transfer statistical reports via SOAP. This several reports vary in 
the amount of columns and - that's the problem - they vary in the column data 
types (eg report A, column 1 is a string; report B, column 1 is an integer; 
...). 

That's what I have done:
First I declare the data type for the column values in the WSDL with 'anyType' 
and set the 'real' data type of the column at runtime to 'string', 'integer', 
'float' or 'date'. This works on several clients (JAX-WS, C#, PHP...) but not 
on Axis 1.4 (see error message below).

I want to know, if there is a better solution to declare and handle varying 
data types in a data table transferred via SOAP. What I have to declare in the 
WSDL and what kind of type I have to set at runtime?

Bye Juergen

Axis error message:
AxisFault
  faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException [^]
  faultSubcode:
  faultString: org.xml.sax.SAXException: No deserializer for string
  faultActor:
  faultNode:
  faultDetail:
  {http://xml.apache.org/axis/}stackTrace:org.xml.sax.SAXException: [^] No 
deserializer for string
  at
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.java:314)
  at
org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)
  at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:165)
  at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:1141)
  at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:236)
  at org.apache.axis.message.RPCElement.getParams(RPCElement.java:384)
  at org.apache.axis.client.Call.invoke(Call.java:2448)
  at org.apache.axis.client.Call.invoke(Call.java:2347)
  at org.apache.axis.client.Call.invoke(Call.java:1804)

Reply via email to