Hi Adrian,
> Caught SOAPException (SOAP-ENV:Client): Unable to retrieve
> PropertyDescriptor for property 'Symbol' of class 'class QuoteResult'.
This error message is correct, since your class QuoteResult does not have a
property "Symbol", it has a property "symbol".
According to the JavaBeans spec, the following design pattern indicates a
property "symbol" exists:
public String getSymbol (){
return Symbol ;
}
public void setSymbol (String newName){
Symbol = newName;
}
You have two choices. You can either create your own deserializer which
knows which method to call for each value, or you can create your own
BeanInfo class for QuoteResult. In your BeanInfo class, the write method for
the "Symbol" property would be setSymbol(String), and likewise for the other
properties.
Thanks,
-Matt
> -----Original Message-----
> From: Adrian Pang [mailto:[EMAIL PROTECTED]]
> Sent: Monday, July 23, 2001 1:19 PM
> To: [EMAIL PROTECTED]
> Subject: RE: Request next version of Apache Soap
>
>
> Hi,
>
> Sorry, I forgot to include the error message. The error thrown was:
>
> Caught SOAPException (SOAP-ENV:Client): Unable to retrieve
> PropertyDescriptor for property 'Symbol' of class 'class QuoteResult'.
>
> Which is thrown in beanserializer, the getWriteMethod method, after it
> fails the
>
> if (propertyName.equals(pds[i].getName()))
>
> propertyName, in the previous code, would be Symbol while
> pds[i].getName() would be symbol. The equality test then fails and the
> exception would be thrown.
>
> In my client code:
>
> smr = new SOAPMappingRegistry();
> BeanSerializer beanSer = new BeanSerializer();
> smr.mapTypes( Constants.NS_URI_SOAP_ENC, new QName( "",
> "GetSimpleQuoteResult" ), Array.class,
> deserializer,
> deserializer );
> smr.mapTypes(Constants.NS_URI_SOAP_ENC, new
> QName("http://marketdata.earthconnect.net/encodedTypes",
> "SimpleQuote"),QuoteResult.class, beanSer, beanSer);
> call.setSOAPMappingRegistry(smr);
>
> Thanks,
> Adrian
>