On the client all I do is register the serializer for my object. // prepare the mapping registry registry = new SOAPMappingRegistry(); //QName qname = new QName("http://www.stringservice/xsd", "StringBean"); QName qname = new QName("http://www.themindelectric.com/package/service.common/", "StringBean"); BeanSerializer serializer = new BeanSerializer(); registry.mapTypes(Constants.NS_URI_SOAP_ENC, qname, StringBean.class, serializer, serializer);
> -----Original Message----- > From: Andrew Simpson [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, January 09, 2002 4:30 PM > To: [EMAIL PROTECTED] > Subject: RE: Serializing an array of beans > > > > Hi Richard, thanks for your message. > > I should have clarified that I'm currently only interested in > server->client > communication, i.e. the java2XMLClassName attribute; your > examples seem to > be for client->server. > > What I'd like to be able to do is something like: > > <isd:map > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="soapejb" qname="x:StockBean[]" > Java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer" > /> > > OR maybe a combination of > > <isd:map > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="soapejb" qname="x:StockBean" > Java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer" > /> > <isd:map > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="soapejb" qname="x:StockBean[]" > Java2XMLClassName="org.apache.soap.encoding.soapenc.ArraySerializer" > /> > > And have the invoked method look like: > > StockBean[] listStocks { //... } > > > However I've concluded that neither of these is possible, and > that I will > need to write and serialize a wrapper class myself (i.e. a > simple bean that > contains an array, rather than an array). > > I can't make ANY type of serializer other than the apache > ones work, which > worries me. > > I assume that providing a class and a pointer to it is all > that I need to do > at the server end? > > Thanks, > > Andrew > > -----Original Message----- > From: Hansen, Richard [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, January 09, 2002 5:01 PM > To: '[EMAIL PROTECTED]' > Subject: RE: Serializing an array of beans > > > I don't think you normally need to worry about array > serialization. I think > it will just happen. You do need to worry about serializing > your bean. But > if the bean class is properly registered with a serializer > arrays should > just work. The only reason I needed to register the arrays > was so MS SOAP > would work. In my Java client I just registered a serializer > for my bean. > > <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="" qname="x:stringArray" > > xml2JavaClassName="org.apache.soap.encoding.soapenc.ArraySerializer"/> > > <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > xmlns:x="" qname="x:stringBeanArray" > > xml2JavaClassName="org.apache.soap.encoding.soapenc.ArraySerializer"/> > > > -----Original Message----- > > From: Andrew Simpson [mailto:[EMAIL PROTECTED]] > > Sent: Wednesday, January 09, 2002 3:52 PM > > To: [EMAIL PROTECTED] > > Subject: Serializing an array of beans > > > > > > Hi, I'm going round in circles trying to serialize an array > of beans. > > > > First I tried using the Apache Bean Serializer, specifying it in the > > deployment descriptor; this worked for one bean, but not > for an array. > > > > I then wrapped the array in another class, then tried to > write my own > > serializer for the wrapper class, and refer to this > serializer in the > > deployment descriptor. > > > > This produces an error on post whenever I change it to point > > from anything > > but the apache serializers. > > > > I am inspecting the XML returned from the soap servlet, the > > output is shown > > below. > > > > On the server end, is using the deployment descriptor (e.g. > > xml2java... > > attribute) sufficent to successfully invoke my serializer > > when returning a > > reply? > > > > From the client end I am using perl SOAP::Lite to invoke the > > function. On > > the server end I am using the StatelessSessionBean provider > > to invoke a > > method whose return type is the object array. > > > > Has anyone managed to write and make work an object array > > serializer on > > Apache SOAP 2.2. If so, do you have any > > code/class/deployment descriptors I > > could look at? > > > > Thanks, > > > > Andrew > > > > 12:00:18:362|15|S|010: <SOAP-ENV:Body> > > 12:00:18:362|15|S|011: <SOAP-ENV:Fault> > > 12:00:18:362|15|S|012: > > <faultcode>SOAP-ENV:Server.Exception:</faultcode> > > 12:00:18:362|15|S|013: > > <faultstring>org/apache/soap/util/xml/Serializer</faultstring> > > 12:00:18:362|15|S|014: > > <faultactor>/soap/servlet/rpcrouter</faultactor> > > 12:00:18:362|15|S|015: </SOAP-ENV:Fault> > > 12:00:18:362|15|S|016: > > 12:00:18:362|15|S|017: </SOAP-ENV:Body> > > > > ______________________________________________________________ > > __________ > > > > Andrew Simpson, SpeechWorks International, Inc. > > 695 Atlantic Avenue, Boston, MA 02111, U.S.A. > > Voice: +1 617 428 4444, Fax: +1 617 757 2211 > > [EMAIL PROTECTED] http://www.speechworks.com > > > > >