The Delayed Stock Quote service provides recent (not real time) stock information given the stock symbol.
<?xml version="1.0" encoding="utf-8"?> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://ws.cdyne.com/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://ws.cdyne.com/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="http://ws.cdyne.com/"> <s:import namespace="http://www.w3.org/2001/XMLSchema" /> <s:element name="GetQuote"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="StockSymbol" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LicenseKey" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetQuoteResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="GetQuoteResult" type="s0:QuoteData" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="QuoteData"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="StockSymbol" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="LastTradeAmount" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="LastTradeDateTime" type="s:dateTime" /> <s:element minOccurs="1" maxOccurs="1" name="StockChange" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="OpenAmount" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="DayHigh" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="DayLow" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="StockVolume" type="s:int" /> <s:element minOccurs="0" maxOccurs="1" name="MktCap" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="PrevCls" type="s:decimal" /> <s:element minOccurs="0" maxOccurs="1" name="ChangePercent" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="FiftyTwoWeekRange" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="EarnPerShare" type="s:decimal" /> <s:element minOccurs="1" maxOccurs="1" name="PE" type="s:decimal" /> <s:element minOccurs="0" maxOccurs="1" name="CompanyName" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="QuoteError" type="s:boolean" /> <s:element minOccurs="1" maxOccurs="1" name="AverageDailyVolume" type="s:int" /> </s:sequence> </s:complexType> <s:element name="GetQuickQuote"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="StockSymbol" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LicenseKey" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetQuickQuoteResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="GetQuickQuoteResult" type="s:decimal" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetQuoteDataSet"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="StockSymbols" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LicenseKey" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetQuoteDataSetResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetQuoteDataSetResult"> <s:complexType> <s:sequence> <s:element ref="s:schema" /> <s:any /> </s:sequence> </s:complexType> </s:element> </s:sequence> </s:complexType> </s:element> <s:element name="ImportantMessage"> <s:complexType /> </s:element> <s:element name="ImportantMessageResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ImportantMessageResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="QuoteData" type="s0:QuoteData" /> <s:element name="decimal" type="s:decimal" /> <s:element name="DataSet" nillable="true"> <s:complexType> <s:sequence> <s:element ref="s:schema" /> <s:any /> </s:sequence> </s:complexType> </s:element> <s:element name="string" nillable="true" type="s:string" /> </s:schema> </types> <message name="GetQuoteSoapIn"> <part name="parameters" element="s0:GetQuote" /> </message> <message name="GetQuoteSoapOut"> <part name="parameters" element="s0:GetQuoteResponse" /> </message> <message name="GetQuickQuoteSoapIn"> <part name="parameters" element="s0:GetQuickQuote" /> </message> <message name="GetQuickQuoteSoapOut"> <part name="parameters" element="s0:GetQuickQuoteResponse" /> </message> <message name="GetQuoteDataSetSoapIn"> <part name="parameters" element="s0:GetQuoteDataSet" /> </message> <message name="GetQuoteDataSetSoapOut"> <part name="parameters" element="s0:GetQuoteDataSetResponse" /> </message> <message name="ImportantMessageSoapIn"> <part name="parameters" element="s0:ImportantMessage" /> </message> <message name="ImportantMessageSoapOut"> <part name="parameters" element="s0:ImportantMessageResponse" /> </message> <message name="GetQuoteHttpGetIn"> <part name="StockSymbol" type="s:string" /> <part name="LicenseKey" type="s:string" /> </message> <message name="GetQuoteHttpGetOut"> <part name="Body" element="s0:QuoteData" /> </message> <message name="GetQuickQuoteHttpGetIn"> <part name="StockSymbol" type="s:string" /> <part name="LicenseKey" type="s:string" /> </message> <message name="GetQuickQuoteHttpGetOut"> <part name="Body" element="s0:decimal" /> </message> <message name="GetQuoteDataSetHttpGetIn"> <part name="StockSymbols" type="s:string" /> <part name="LicenseKey" type="s:string" /> </message> <message name="GetQuoteDataSetHttpGetOut"> <part name="Body" element="s0:DataSet" /> </message> <message name="ImportantMessageHttpGetIn" /> <message name="ImportantMessageHttpGetOut"> <part name="Body" element="s0:string" /> </message> <message name="GetQuoteHttpPostIn"> <part name="StockSymbol" type="s:string" /> <part name="LicenseKey" type="s:string" /> </message> <message name="GetQuoteHttpPostOut"> <part name="Body" element="s0:QuoteData" /> </message> <message name="GetQuickQuoteHttpPostIn"> <part name="StockSymbol" type="s:string" /> <part name="LicenseKey" type="s:string" /> </message> <message name="GetQuickQuoteHttpPostOut"> <part name="Body" element="s0:decimal" /> </message> <message name="GetQuoteDataSetHttpPostIn"> <part name="StockSymbols" type="s:string" /> <part name="LicenseKey" type="s:string" /> </message> <message name="GetQuoteDataSetHttpPostOut"> <part name="Body" element="s0:DataSet" /> </message> <message name="ImportantMessageHttpPostIn" /> <message name="ImportantMessageHttpPostOut"> <part name="Body" element="s0:string" /> </message> <portType name="DelayedStockQuoteSoap"> <operation name="GetQuote"> <documentation>This method retrieves a current stock quote. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuoteSoapIn" /> <output message="s0:GetQuoteSoapOut" /> </operation> <operation name="GetQuickQuote"> <documentation>This method retrieves just a stock price. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuickQuoteSoapIn" /> <output message="s0:GetQuickQuoteSoapOut" /> </operation> <operation name="GetQuoteDataSet"> <documentation>This method retrieves the stock information and returns it in a dataset. Use a , to diplay multiple quotes. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuoteDataSetSoapIn" /> <output message="s0:GetQuoteDataSetSoapOut" /> </operation> <operation name="ImportantMessage"> <input message="s0:ImportantMessageSoapIn" /> <output message="s0:ImportantMessageSoapOut" /> </operation> </portType> <portType name="DelayedStockQuoteHttpGet"> <operation name="GetQuote"> <documentation>This method retrieves a current stock quote. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuoteHttpGetIn" /> <output message="s0:GetQuoteHttpGetOut" /> </operation> <operation name="GetQuickQuote"> <documentation>This method retrieves just a stock price. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuickQuoteHttpGetIn" /> <output message="s0:GetQuickQuoteHttpGetOut" /> </operation> <operation name="GetQuoteDataSet"> <documentation>This method retrieves the stock information and returns it in a dataset. Use a , to diplay multiple quotes. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuoteDataSetHttpGetIn" /> <output message="s0:GetQuoteDataSetHttpGetOut" /> </operation> <operation name="ImportantMessage"> <input message="s0:ImportantMessageHttpGetIn" /> <output message="s0:ImportantMessageHttpGetOut" /> </operation> </portType> <portType name="DelayedStockQuoteHttpPost"> <operation name="GetQuote"> <documentation>This method retrieves a current stock quote. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuoteHttpPostIn" /> <output message="s0:GetQuoteHttpPostOut" /> </operation> <operation name="GetQuickQuote"> <documentation>This method retrieves just a stock price. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuickQuoteHttpPostIn" /> <output message="s0:GetQuickQuoteHttpPostOut" /> </operation> <operation name="GetQuoteDataSet"> <documentation>This method retrieves the stock information and returns it in a dataset. Use a , to diplay multiple quotes. Use a license key of 0 for testing.</documentation> <input message="s0:GetQuoteDataSetHttpPostIn" /> <output message="s0:GetQuoteDataSetHttpPostOut" /> </operation> <operation name="ImportantMessage"> <input message="s0:ImportantMessageHttpPostIn" /> <output message="s0:ImportantMessageHttpPostOut" /> </operation> </portType> <binding name="DelayedStockQuoteSoap" type="s0:DelayedStockQuoteSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <operation name="GetQuote"> <soap:operation soapAction="http://ws.cdyne.com/GetQuote" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetQuickQuote"> <soap:operation soapAction="http://ws.cdyne.com/GetQuickQuote" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetQuoteDataSet"> <soap:operation soapAction="http://ws.cdyne.com/GetQuoteDataSet" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="ImportantMessage"> <soap:operation soapAction="http://ws.cdyne.com/ImportantMessage" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <binding name="DelayedStockQuoteHttpGet" type="s0:DelayedStockQuoteHttpGet"> <http:binding verb="GET" /> <operation name="GetQuote"> <http:operation location="/GetQuote" /> <input> <http:urlEncoded /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> <operation name="GetQuickQuote"> <http:operation location="/GetQuickQuote" /> <input> <http:urlEncoded /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> <operation name="GetQuoteDataSet"> <http:operation location="/GetQuoteDataSet" /> <input> <http:urlEncoded /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> <operation name="ImportantMessage"> <http:operation location="/ImportantMessage" /> <input> <http:urlEncoded /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> </binding> <binding name="DelayedStockQuoteHttpPost" type="s0:DelayedStockQuoteHttpPost"> <http:binding verb="POST" /> <operation name="GetQuote"> <http:operation location="/GetQuote" /> <input> <mime:content type="application/x-www-form-urlencoded" /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> <operation name="GetQuickQuote"> <http:operation location="/GetQuickQuote" /> <input> <mime:content type="application/x-www-form-urlencoded" /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> <operation name="GetQuoteDataSet"> <http:operation location="/GetQuoteDataSet" /> <input> <mime:content type="application/x-www-form-urlencoded" /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> <operation name="ImportantMessage"> <http:operation location="/ImportantMessage" /> <input> <mime:content type="application/x-www-form-urlencoded" /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> </binding> <service name="DelayedStockQuote"> <port name="DelayedStockQuoteSoap" binding="s0:DelayedStockQuoteSoap"> <soap:address location="http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx" /> </port> <port name="DelayedStockQuoteHttpGet" binding="s0:DelayedStockQuoteHttpGet"> <http:address location="http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx" /> </port> <port name="DelayedStockQuoteHttpPost" binding="s0:DelayedStockQuoteHttpPost"> <http:address location="http://ws.cdyne.com/delayedstockquote/delayedstockquote.asmx" /> </port> </service> </definitions>
If you invoke wsdl2java on the above WSDL document, you can run this client to interact with the service:
package delayedquote; import javax.xml.rpc.Stub; import javax.naming.InitialContext; public class Client { public static void main(String[] args) throws Exception { | // get the initial context | InitialContext ctx = new InitialContext(); | | // lookup the service | DelayedStockQuote svc = (DelayedStockQuote) | ctx.lookup("xmlrpc:soap:delayedquote.DelayedStockQuote"); | | // get stub reference | DelayedStockQuoteSoap port = svc.getDelayedStockQuoteSoap(); | | // set the end point address if specified | if (args.length > 1) { | | Stub stub = (Stub) port; | | stub._setProperty("javax.xml.rpc.service.endpoint.address", args[1]); | } | | // Get the stock symbol if specified | String symbol = (args.length > 0) ? args[0] : "NOVL"; | | // Get the Stock data | QuoteData stkdata = port.getQuote(symbol, ""); | | // print result | System.out.println("Stock data for " + symbol + " :\n"); | System.out.println("Company Name: " + stkdata.getCompanyName()); | System.out.println("Last Trade: " + stkdata.getLastTradeAmount()); | System.out.println("Daily High: " + stkdata.getDayHigh()); | System.out.println("Daily Low: " + stkdata.getDayLow()); | System.out.println("52 Week Range: " + stkdata.getFiftyTwoWeekRange()); } }
Please refer to the README file for details on how to build and run the example.
Copyright © 2003, 2004 Novell, Inc. All rights reserved. Copyright © 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.