Title: java.util.Map, List with wingfoot SOAP client and Axis beta 2 server

Hi,

I noticed on compatibility test results on the wingfoot site that wingfoot SOAP is shown as fully compatible with Apache Axis. I was wondering if wingfoot soap1.02 with J2SE transport supports the use of Maps and Lists as parameters and return types against  Axis beta 2? I'm running Axis beta 2 and have a service published with the following interface:

 public Map getProfile(String type, Map ids);

and when I run a wingfoot client making this call against Axis the following SAXException occurs on the server:

[ERROR,AxisServlet] Exception:
org.xml.sax.SAXException: Bad types (null -> interface java.util.Map)
org.xml.sax.SAXException: Bad types (null -> interface java.util.Map)
        at org.apache.axis.message.RPCHandler.onStartChild(RPCHandler.java:205)
        at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:831)
        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:199)
        at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:589)
        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:190)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:248)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:150)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:262)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:154)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:121)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:288)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:576)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

If I try to use a Hashtable as the actual value for the parameter passed instead of a HashMap, I get a slightly different exception:

[ERROR,AxisServlet] Exception:
org.xml.sax.SAXException: Only ''item'' elements are allowed in a Map!
org.xml.sax.SAXException: Only ''item'' elements are allowed in a Map!
        at org.apache.axis.encoding.ser.MapDeserializer.onStartChild(MapDeserializer.java:157)
        at org.apache.axis.encoding.DeserializationContextImpl.startElement(DeserializationContextImpl.java:831)
        at org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:199)
        at org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:589)
        at org.apache.axis.message.RPCElement.deserialize(RPCElement.java:190)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:248)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:150)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:262)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:154)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:121)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:288)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:576)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)

It seems in this case that wingfoot is using <mapitem> tags for each element in the Hashtable, and Axis is expecting <item> tags?? Any help/suggestions appreciated.

Thanks,

Martin Hubley
      

Reply via email to