Ok I have decided to ditch the hashmap and here's my new wsdl and soap response:
<?xml version="1.0" encoding="UTF-8"?> <definitions name="AuctionBeanService" targetNamespace="http://wrapper.com/" xmlns:tns="http://wrapper.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xs:schema targetNamespace="http://wrapper.com/" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:complexType name="mapBean"> <xs:sequence> <xs:element minOccurs="0" name="key" type="xs:string"/> <xs:element minOccurs="0" name="value" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:schema> </types> <message name="AuctionBean_getMapResponse"> <part name="return" type="tns:mapBean"> </part> </message> <message name="AuctionBean_getMap"> <part name="arg0" type="xsd:string"> </part> </message> <portType name="AuctionBean"> <operation name="getMap" parameterOrder="arg0"> <input message="tns:AuctionBean_getMap"> </input> <output message="tns:AuctionBean_getMapResponse"> </output> </operation> </portType> <binding name="AuctionBeanBinding" type="tns:AuctionBean"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getMap"> <soap:operation soapAction=""/> <input> <soap:body use="literal" namespace="http://wrapper.um2.com/"/> </input> <output> <soap:body use="literal" namespace="http://wrapper.um2.com/"/> </output> </operation> </binding> <service name="AuctionBeanService"> <port name="AuctionBeanPort" binding="tns:AuctionBeanBinding"> <soap:address location="http://<mcname>:<port>/<jarname>/AuctionBean"/> </port> </service> </definitions> Soap response: <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'><env:Header></env:Header><env:Body><ns1:getMapResponse xmlns:ns1='http://wrapper.com/'><return><key>randomkey</key><value>randomvalue</value></return></ns1:getMapResponse></env:Body></env:Envelope> But invoking the service gives me the below error: Caused by: org.xml.sax.SAXException: SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. at org.apache.axis.encoding.ser.SimpleDeserializer.onStartChild(SimpleDeserializer.java:145) 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) ... 3 more jaki wrote: > > Is your msg incomplete? Cuz it says part of the message was removed to > comply with nabble security policy. > If it's not, I tried 'ArrayList ret3 = (ArrayList) cu.call.invoke( new > Object [] { jobid });' , but it returns back an emtpy list > > > > Lars Ericsson wrote: >> >> yes, array list will work i.e >> ArrayList ret3 = (ArrayList) cu.call.invoke( new Object [] { jobid }); >> >> >> >> ----- Original Message ---- >> From: sarika pramod <[EMAIL PROTECTED]> >> To: axis-user@ws.apache.org >> Sent: Monday, August 18, 2008 3:31:57 PM >> Subject: Re: Returning Map / List from web service >> >> >> Hi jaki, >> >> List/Map will not work - since those are Java specific types which may >> not be representable in all languages -- hence web-services don't support >> them. >> >> I am also facing the same issues currently. >> >> Regards, >> Sarika >> >> >> On Mon, Aug 18, 2008 at 6:46 PM, jaki <[EMAIL PROTECTED]> wrote: >> >> >> Any help on this? :( I have exposed the ejbs using @Webservice >> annotations >> and not using the axis wsdd method. Should that be what's causing the >> problem? Please help >> >> >> >> jaki wrote: >>> >>> Hi all, >>> >>> I have an axis WS client calling a remote ejb3 web service as below: >>> >>> Call call = (Call) service.createCall(); >>> call.setTargetEndpointAddress( new >>> java.net.URL(endpoint) ); >>> call.setOperationName(new >>> QName("http://session.um.com/", >>> "getAuc") ); >>> >>> >>> call.addParameter("arg0", >>> org.apache.axis.Constants.XSD_INT, >>> javax.xml.rpc.ParameterMode.IN); >>> >>> >>> call.setReturnClass(HashMap.class); >>> HashMap ret = (HashMap) call.invoke( new Object[] >>> {"1"} >>> >>> Thought it throws no error, the returned Map / List never has any >>> contents >>> in them. Also, if instead of setReturnClass I try to use >>> setReturnType(org.apache.axis.Constants.XSD_ANY) it gives me the below >>> error: >>> >>> could not find deserializer for type >>> {http://www.w3.org/2001/XMLSchema}any >>> >> >> -- >> View this message in context: >> http://www.nabble.com/Returning-Map---List-from-web-service-tp19010233p19031177.html >> >> Sent from the Axis - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> >> > > -- View this message in context: http://www.nabble.com/Returning-Map---List-from-web-service-tp19010233p19047819.html Sent from the Axis - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]