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]>