I don't see how it could ever work, unless some version of
java.sql.Timestamp has a default ctor. The following code in
BeanSerializer creates the bean:
private Object instantiateBean(Class javaType)
throws IllegalArgumentException
{
try
{
return javaType.newInstance();
}
catch (Throwable t)
{
throw new IllegalArgumentException("Unable to instantiate '" +
StringUtils.getClassName(javaType) +
"': " + t.getMessage());
}
}
The newInstance is only going to work if the class has a default ctor
(or in Sun's terminology, a "nullary constructor").
On 2 Jun 2003 at 15:14, Jonathan Roberts wrote:
> HI Scott,
>
> I thought I'd got around this by declaring the java.sql.Timestamp as a class in the
> xml file and loaded it with all the other classes. This seems to be fine on my
> machine but not on a deployment server. Could it be a class problem?
>
> Cheers
>
> Jonathan
>
> Scott Nichol <[EMAIL PROTECTED]> wrote:
> java.sql.Timestamp does not have a default constructor, which Apache
> SOAP requires for instantiation. An alternative for you would be to
> return a java.util.Date, which Apache SOAP knows how to serialize and
> de-serialize.
>
> On 2 Jun 2003 at 10:54, Jonathan Roberts wrote:
>
> > Hi.
> >
> > I'm getting the following errors on the response from the soap server :
> >
> > on the
> > r = c.invoke ( new URL( mstrHostString + "/soap/servlet/rpcrouter"), "" );
> > call
> > where Response r;
> > and Call c;
> > ---------------------------------------------------------------------------
> >
> > Error report :
> > 1. If information exists and is returned :
> >
> > Unable to instantiate 'java.sql.Timestamp': java.sql.Timestamp
> >
> > You chose fetchAccountUsingAccountNo 10015301
> >
> > Exception = [SOAPException: faultCode=SOAP-ENV:Client; msg=Unable to instantiate
> > 'java.sql.Timestamp': java.sql.Timestamp; targetException=java.lang.IllegalAr
> >
> > gumentException: Unable to instantiate 'java.sql.Timestamp': java.sql.Timestamp].
> >
> > ----------------------------------------------------------------------------------------------------
> > 2. If no information:
> >
> > Exception = [SOAPException: faultCode=SOAP-ENV:Client; msg=
> >
> > Can't yet deserialize non-null Objects;
> >
> > targetException=java.lang.IllegalArgumentException: Can't yet deserialize non-null
> > Objects]
> >
> > ------------------------------------------
> >
> > Isssues :
> >
> > 1. I'm aware of problems with the timestamp and have set it up in the client side
> > thus have named it explicitly :
> >
> > QName qn9 = new QName("urn:xml-IVR-App", "java.sql.Timestamp");
> > //map the type
> > smr.mapTypes(Constants.NS_URI_SOAP_ENC, qn9, java.sql.Timestamp.class, bsr, bsr);
> > //telling the call object to use this mapping
> > c.setSOAPMappingRegistry(smr);
> >
> > 2. and the xml
> >
> > >
> > xmlns:x="urn:xml-IVR-App"
> >
> > qname="x:java.sql.Timestamp"
> >
> > javaType="java.sql.Timestamp"
> >
> > java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
> >
> > xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
> >
> > />
> >
> > 3. Wierder - this works on the development machine but not on the stand-alone Test
> > Server.
> >
> > Any help would be appreciated.
> >
> > Jonathan
> >
> >
> >
> >
> >
> >
> > ---------------------------------
> > Yahoo! Plus - For a better Internet experience
> >
>
>
> Scott Nichol
>
> Do not reply directly to this e-mail address,
> as it is filtered to only receive e-mail from
> specific mailing lists.
>
>
>
>
>
> ---------------------------------
> Yahoo! Plus - For a better Internet experience
>
Scott Nichol
Do not reply directly to this e-mail address,
as it is filtered to only receive e-mail from
specific mailing lists.