Hi,

Here's an example of the result returned by the service (I don't own the
source code therefore cannot change it):

<tns:GetSimpleQuoteResponse>
� <GetSimpleQuoteResult href="#id1" /> 
</tns:GetSimpleQuoteResponse>
<soapenc:Array id="id1" soapenc:arrayType="types:SimpleQuote[2]">
� <Item href="#id2" /> 
� <Item href="#id3" /> 
� </soapenc:Array>
<types:SimpleQuote id="id2" xsi:type="types:SimpleQuote">
� <Symbol xsi:type="xsd:string">IBM</Symbol> 
� <CompanyName xsi:type="xsd:string">INTL BUSINESS
MACHINES</CompanyName> 
� <LastPrice xsi:type="xsd:decimal">106.02</LastPrice> 
� <LastPriceTime
xsi:type="xsd:dateTime">2001-07-23T12:40:00.0000000-07:00</LastPriceTime
> 
� <Change xsi:type="xsd:decimal">0.32</Change> 
� <PercentChange xsi:type="xsd:double">0.3</PercentChange> 
� <DayLow xsi:type="xsd:decimal">105.3</DayLow> 
� <DayHigh xsi:type="xsd:decimal">106.99</DayHigh> 
� <Volume xsi:type="xsd:long">3666900</Volume> 
� <Valid href="#id4" /> 
</types:SimpleQuote>
<types:SimpleQuote id="id3" xsi:type="types:SimpleQuote">
� <Symbol xsi:type="xsd:string">MSFT</Symbol> 
� <CompanyName xsi:type="xsd:string">MICROSOFT CORP</CompanyName> 
� <LastPrice xsi:type="xsd:decimal">67.34</LastPrice> 
� <LastPriceTime
xsi:type="xsd:dateTime">2001-07-23T12:40:00.0000000-07:00</LastPriceTime
> 
� <Change xsi:type="xsd:decimal">-5.23</Change> 
� <PercentChange xsi:type="xsd:double">-7.55</PercentChange> 
� <DayLow xsi:type="xsd:decimal">66.35</DayLow> 
� <DayHigh xsi:type="xsd:decimal">69.26</DayHigh> 
� <Volume xsi:type="xsd:long">22521700</Volume> 
� <Valid href="#id5" /> 
</types:SimpleQuote>
<types:SimpleQuoteValues id="id4" xsi:type="types:SimpleQuoteValues">
� <Symbol xsi:type="xsd:boolean">true</Symbol> 
� <CompanyName xsi:type="xsd:boolean">true</CompanyName> 
� <LastPrice xsi:type="xsd:boolean">true</LastPrice> 
� <LastPriceTime xsi:type="xsd:boolean">true</LastPriceTime> 
� <Change xsi:type="xsd:boolean">true</Change> 
� <PercentChange xsi:type="xsd:boolean">true</PercentChange> 
� <DayLow xsi:type="xsd:boolean">true</DayLow> 
� <DayHigh xsi:type="xsd:boolean">true</DayHigh> 
� <Volume xsi:type="xsd:boolean">true</Volume> 
</types:SimpleQuoteValues>
<types:SimpleQuoteValues id="id5" xsi:type="types:SimpleQuoteValues">
� <Symbol xsi:type="xsd:boolean">true</Symbol> 
� <CompanyName xsi:type="xsd:boolean">true</CompanyName> 
� <LastPrice xsi:type="xsd:boolean">true</LastPrice> 
� <LastPriceTime xsi:type="xsd:boolean">true</LastPriceTime> 
� <Change xsi:type="xsd:boolean">true</Change> 
� <PercentChange xsi:type="xsd:boolean">true</PercentChange> 
� <DayLow xsi:type="xsd:boolean">true</DayLow> 
� <DayHigh xsi:type="xsd:boolean">true</DayHigh> 
� <Volume xsi:type="xsd:boolean">true</Volume> 
</types:SimpleQuoteValues>

the source for the bean:

import java.io.Serializable;
 
public class QuoteResult implements Serializable{
  
        private String Symbol  = "NAME";
        private String CompanyName  = "NAME";
        private double LastPrice  = 0;
        private String LastPriceTime  = "NAME";
        private double Change  = 0;
        private long Volume  = 0;
        private String Tick  = "NAME";
        private double Bid  = 0;
        private double Ask  = 0;
        private int BidSize  = 0;
        private int AskSize  = 0;
        private double DayLow  = 0;
        private double DayHigh  = 0;
        private double Open  = 0;
        private double PreviousClose  = 0;
        private int LastTradeVolume  = 0;
        private boolean[] Valid = {             false,false,false,false,
        
false,false,false,false,
        
false,false,false,false,
        
false,false,false,false
                                                                };

        public String getSymbol (){
                return Symbol ;
        }

        public void setSymbol (String newName){
                Symbol  = newName;
        }


        public String getCompanyName (){
                return CompanyName;
        }

        public void setCompanyName (String newName){
                CompanyName  = newName;
        }
        
        public double getLastPrice (){
                return LastPrice;
        }

        public void setLastPrice (double newName){
                LastPrice  = newName;
        }
 
        public String getLastPriceTime (){
                return LastPriceTime;
        }

        public void setLastPriceTime (String newName){
                LastPriceTime  = newName;
        }

        public double getOpen (){
                return Open;
        }

        public void setOpen (double newName){
                Open  = newName;
        }

        public double getPreviousClose (){
                return PreviousClose;
        }

        public void setPreviousClose (double newName){
                PreviousClose  = newName;
        }

        public double getDayLow (){
                return DayLow;
        }

        public void setDayLow (double newName){
                DayLow  = newName;
        }

        public double getDayHigh (){
                return DayHigh;
        }

        public void setDayHigh (double newName){
                DayHigh  = newName;
        }

        public int getBidSize (){
                return BidSize;
        }

        public void setBidSize (int newName){
                BidSize  = newName;
        }

        public int getLastTradeVolume (){
                return LastTradeVolume;
        }

        public void setLastTradeVolume (int newName){
                LastTradeVolume  = newName;
        }


        public int getAskSize (){
                return AskSize;
        }

        public void setAskSize (int newName){
                AskSize  = newName;
        }

        public double getBid (){
                return Bid;
        }

        public void setBid (double newName){
                Bid  = newName;
        }

        public double getAsk (){
                return Ask;
        }

        public void setAsk (double newName){
                Ask  = newName;
        }


        public String getTick (){
                return Tick ;
        }

        public void setTick (String newName){
                Tick  = newName;
        }
 
        public double getChange (){
                return Change;
        }

        public void setChange (double newName){
                Change  = newName;
        }

        public long getVolume (){
                return Volume;
        }

        public void setVolume (long newName){
                Volume  = newName;
        }

        public boolean getValid(int index)
        {
                return getValid()[index];
        }

        public void setValid(int index, boolean value)
        {
                Valid[index] = value;
        }
        
        public boolean[] getValid(){
                return Valid;
        }

        public void setValid (boolean[] newName)
        {
                for (int i=0;i<16 ;i++ )
                {
                        Valid[i] = newName[i];
                }
        }

        
        //Constructor sets inherited properties
    public QuoteResult(){
      
        
    }
}

I believe the problem lies in the fact that the results returned are in
proper case, such as Symbol, CompanyName, etc., and Java returns the
property with the first character in lowercase unless the second symbol
is also upper case, therefore "Symbol" will be returned as "symbol."
The comparison then fails and Apache SOAP throws an exception.

Or perhaps a problem with my code?  If so, please let me know. 

Thanks,
Adrian

Reply via email to