No.  Vector$1 is not a Vector, it is a class that implements
Enumeration.

Scott Nichol

----- Original Message -----
From: "Vijay Shinde" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, January 02, 2003 1:41 PM
Subject: Re: SOAP - method return


> Thanx Scott,
> can u se this class org.apache.soap.encoding.soapenc.VectorSerializer
and
> map it to Vector$1?
> Vijay
>
> Scott Nichol wrote:
>
> > The Hashtable mapping is implicit: you do not need it in your
> > deploymentdescriptor.
> >
> > As you can see, the error is actually finding a serializer for
> > java.util.Vector$1.  This class exists back to JDK 1.2; it is an
> > anonymous class implementing the Enumeration interface defined by
the
> > Vector#elements() method.  I take it that the elements in your
Hashtable
> > are such Enumerations.
> >
> > What you need to do is write a serializer and deserializer for such
> > Enumerations and map them to java.util.Vector$1 (map the serializer
on
> > the server and the deserializer on the client).
> >
> > Alternatively, if you can rewrite the method (or add a new method)
to
> > return a Hashable of Vectors instead, the built-in Vector serializer
> > will do the work for you.
> >
> > Scott Nichol
> >
> > ----- Original Message -----
> > From: "Vijay Shinde" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> > Sent: Thursday, January 02, 2003 12:30 PM
> > Subject: Re: SOAP - method return
> >
> > > Scott,
> > >
> > > Here are the details.
> > >
> > > I guess i need to provide the mapping in my
DeploymentDescriptor.xml.
> > >
> > > Here is my descriptor.
> > > <dd:service xmlns:dd="http://xml.apache.org/xml-soap/deployment";
> > >     id="urn:ldap">
> > >      <dd:provider type="java"
> > >               scope="Application"
> > >               methods="getLDAP">
> > >        <dd:java class="LDAPCall"  static="false" />
> > >      </dd:provider>
> > >
> > >
> >
<dd:faultListener>org.apache.soap.server.DOMFaultListener</dd:faultListe
> > ner>
> > >
> > >  <dd:mappings>
> > >      <dd:map
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
> > >               xmlns:x="urn:ldap" qname="x:ldap"
> > >               javaType="java.util.Hashtable"
> > >
> > >
> >
java2XMLClassName="org.apache.soap.encoding.soapenc.HashtableSerializer"
> > >
> > >
> >
xml2JavaClassName="org.apache.soap.encoding.soapenc.HashtableSerializer"
> > />
> > >
> > >   </dd:mappings>
> > > </dd:service>
> > >
> > > I am returning Hashtable from my method call.
> > >
> > > I am getting following exception.
> > >
> > > The SOAP Server says: http://localhost:8080/soap/servlet/rpcrouter
> > > Ouch, the call failed:
> > >   Fault Code   = SOAP-ENV:Server
> > >   Fault String = java.lang.IllegalArgumentException: No Serializer
> > found to
> > > seri
> > > alize a 'java.util.Vector$1' using encoding style
> > > 'http://schemas.xmlsoap.org/so
> > > ap/encoding/'.
> > >
> > > I have provide mapping for hashtable why it is throwing me error
for
> > vector
> > > class?.
> > > are  my mappings correct?
> > >
> > >
> > > Vijay
> > >
> > >
> > > Scott Nichol wrote:
> > >
> > > > A couple of things:
> > > >
> > > > 1. Which line of your code is line 36 where the exception is
> > occurring?
> > > >
> > > > 2. Your code should check for a SOAP Fault before doing
> > > > getReturnValue(), e.g.
> > > >
> > > >  Response resp = call.invoke(url, "");
> > > >  if (resp.generatedFault()) {
> > > >     Fault fault = resp.getFault();
> > > >     System.err.println("Generated fault: " + fault);
> > > >  } else {
> > > >     Parameter p = resp.getReturnValue();
> > > >     Hashtable values = (Hashtable)p.getValue();
> > > >     ...
> > > >
> > > > If there is a fault, I believe that getReturnValue() will return
> > null,
> > > > so calling it without checking for a fault could lead to an NPE.
> > > >
> > > > 3. Although I take it you are using Apache SOAP on the server in
> > this
> > > > case, it is worth pointing out that some SOAP implementations
will
> > omit
> > > > the return value from the SOAP envelope if its value is null
(e.g.
> > this
> > > > happens in .NET when the return is not specified as being
nillable).
> > > > Therefore, it is good practice in your client code to check that
> > > > getReturnValue() does not itself return null.
> > > >
> > > > Scott Nichol
> > > >
> > > > ----- Original Message -----
> > > > From: "Vijay Shinde" <[EMAIL PROTECTED]>
> > > > To: <[EMAIL PROTECTED]>
> > > > Sent: Thursday, January 02, 2003 11:54 AM
> > > > Subject: SOAP - method return
> > > >
> > > > > Hi,
> > > > >
> > > > > I am doing LDAP call using soap .I want to return Hashtable
from
> > my
> > > > > method call.
> > > > > On my client site I am using following code to get my
hashtable.
> > > > >
> > > > > Response resp = call.invoke(url, "");
> > > > > Parameter p = resp.getReturnValue();
> > > > >   Hashtable values = (Hashtable)p.getValue();
> > > > >
> > > > > I am getting following exception.
> > > > >
> > > > > The SOAP Server says:
> > > > > http://localhost:8080/soap/servlet/rpcrouterException in t
> > > > > hread "main" java.lang.NullPointerException
> > > > >  at LDAP_client.main(LDAP_client.java:36)
> > > > >
> > > > > any help will be useful.
> > > > >
> > > > > Vijay
> > > > > --
> > > > > This communication is intended for the addressee(s) and may
> > contain
> > > > > confidential and legally privileged information.  We do not
waive
> > > > > confidentiality or privilege by mistransmission.  If you have
> > received
> > > > > this communication in error, any use, dissemination, printing
or
> > > > copying
> > > > > is strictly prohibited; please destroy all electronic and
paper
> > copies
> > > > > and notify the sender immediately.
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > To unsubscribe, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > > > For additional commands, e-mail:
> > > > <mailto:[EMAIL PROTECTED]>
> > > > >
> > > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > > > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > >
> > > --
> > > This communication is intended for the addressee(s) and may
contain
> > > confidential and legally privileged information.  We do not waive
> > > confidentiality or privilege by mistransmission.  If you have
received
> > this
> > > communication in error, any use, dissemination, printing or
copying is
> > > strictly prohibited; please destroy all electronic and paper
copies
> > and
> > > notify the sender immediately.
> > >
> > >
> > >
> > > --
> > > To unsubscribe, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > > For additional commands, e-mail:
> > <mailto:[EMAIL PROTECTED]>
> > >
> > >
> >
> > --
> > To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> > For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
> --
> This communication is intended for the addressee(s) and may contain
> confidential and legally privileged information.  We do not waive
> confidentiality or privilege by mistransmission.  If you have received
this
> communication in error, any use, dissemination, printing or copying is
> strictly prohibited; please destroy all electronic and paper copies
and
> notify the sender immediately.
>
>
>
> --
> To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>
>
>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to