Hi, 
I have just worked throught this exmaple

http://www-106.ibm.com/developerworks/webservices/library/ws-ref3/

I would now like to send a complex object from my MS SOAP Toolkit client to
Apache SOAP. I have added a method to NasdaqQuotes2.java:


public NasdaqQuote bounceQuote(NasdaqQuote q) throws Exception {
return q;
}

I have added the following to my wdsl file:

<operation name="bounceQuote">
<input message="tns:getQuoteOut" />
<output message="tns:getQuoteOut"/>
</operation>

and the following to my deployment descriptor:


<isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:x="urn:NasdaqQuotes2"
qname="x:return"
javaType="NasdaqQuote"
java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer" />

in my vbs file, I do the following 

set Res0 = SC.getQuote(WScript.Arguments(0))
set Res = SC.bounceQuote(Res0)

(replacing line 9)

I have also tried many different variations with my own classes, but I
always get errors like:

No Deserializer found to deserialize a ':return' using encoding style
'http://schemas.xmlsoap.org/soap/encoding/'

here are the details for the bounce call:

request:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
- <SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";>
- <SOAP-ENV:Body>
- <SOAPSDK1:bounceQuote xmlns:SOAPSDK1="urn:NasdaqQuotes2">
- <return>
<fiftyTwoWeekHigh xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:double">126.39</fiftyTwoWeekHigh> 
<fiftyTwoWeekLow xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:double">83.34</fiftyTwoWeekLow> 
<issuerWebSite xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:string">http://www.ibm.com</issuerWebSite> 
<lastSalePrice xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:double">87.75</lastSalePrice> 
<market xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:string">NYSE</market> 
<netPercentChange xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:string">-1.4%</netPercentChange> 
<netPriceChange xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:double">-1.25</netPriceChange> 
<previousClosePrice xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:double">89.0</previousClosePrice> 
<shareVolume xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:long">3345000</shareVolume> 
<symbol xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:string">IBM</symbol> 
<todaysHigh xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:double">88.95</todaysHigh> 
<todaysLow xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:double">87.51</todaysLow> 
<totalShares xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:long">1723200000</totalShares> 
<tradingStatus xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xsi:type="xsd:string">ACTIVE</tradingStatus> 
</return>
</SOAPSDK1:bounceQuote>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

response:

<?xml version="1.0" encoding="UTF-8" ?> 
- <SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/1999/XMLSchema";>
- <SOAP-ENV:Body>
- <SOAP-ENV:Fault>
<faultcode>SOAP-ENV:Client</faultcode> 
<faultstring>No Deserializer found to deserialize a ':return' using encoding
style 'http://schemas.xmlsoap.org/soap/encoding/'.</faultstring> 
<faultactor>/worp/soap/servlet/rpcrouter</faultactor> 
</SOAP-ENV:Fault>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>



All help would be greatly appreciated.

tia

Tim Joyce
 
 

Reply via email to