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