Try: setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.TRUE);
-- dims On 6/1/06, Jeffrey Ng <[EMAIL PROTECTED]> wrote:
Hi, Sorry all, I am really at my wits end… look thru everywhere but just can't seems to find my answers… I am trying to get a SOAP response that have more than 1 type. Instead of a normal <getQuoteReturn xsi:type="xsd:float">49.3</getQuoteReturn>, I want to get <getQuoteReturn xsi:type="xsd:state"><ID>123</ID><Value>0</Value></getQuoteReturn> I quote the example getStockQuote. This is the request:-> ======================================================================== <?xml version="1.0" encoding="utf-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:getQuote soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:xmltoday-delayed-quotes"> <symbol xsi:type="xsd:string">c</symbol> </ns1:getQuote> </soapenv:Body> </soapenv:Envelope> ======================================================================== This is the response:-> ======================================================================== <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns1:getQuoteResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:xmltoday-delayed-quotes"> <getQuoteReturn xsi:type="xsd:float">49.3</getQuoteReturn> </ns1:getQuoteResponse> </soapenv:Body> </soapenv:Envelope> ======================================================================== the code to retrieve the returntype 'float' is below: call.setTargetEndpointAddress( url ); call.setOperationName( new QName("urn:xmltoday-delayed-quotes", "getQuote") ); call.addParameter( "symbol", XMLType.XSD_STRING, ParameterMode.IN ); call.setReturnType( XMLType.XSD_FLOAT ); // TESTING HACK BY ROBJ if (symbol.equals("XXX_noaction")) { symbol = "XXX"; } call.setUsername( user ); call.setPassword( passwd ); Object ret = call.invoke( new Object[] {symbol} ); To retrieve the 'state' as what is required, how to I set the setReturnType? Do I do this:- QName stateQN = new QName( "WSG-interface", "State" ); call.setTargetEndpointAddress( url ); call.setOperationName( new QName("WSG-interface", "ReadBalanceRequest") ); call.addParameter( "MSN", XMLType.XSD_STRING, ParameterMode.IN ); call.addParameter( "State", stateQN, ParameterMode.OUT ); call.setReturnType( stateQN ); Object ret = call.invoke( new Object[] {MSN} ); if (ret instanceof String) { System.out.println("Received problem response from server: "+ret); throw new AxisFault("", (String)ret, null, null); } //stateQN = (QName) ret; state = (State) ret; status = state.getID(); appreciate whatever help provided. thanks, Jeff.
-- Davanum Srinivas : http://wso2.com/blogs/ --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]