Are your data1 and data2 class following the bean pattern for getters and
setters? If not, then the bean serializer will not be able to handle them. The
bean serializer will use reflection to get at the individual members and if
they dont follow the bean pattern they will not be able to be serialized
succesfully.

Please post the response that you see when this test is run through the
TcpTunnelGui

thanks,
-javier

[EMAIL PROTECTED] wrote:

> Hi,
>
> My beans have all getter and setter methods for their fields and some
> further public methods for modifiying the fields.
> I tried to use the SOAP mapping registry, but I cannot find my error.
> I deployed the mappings to the server:
>   <isd:mappings>
>     <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>              xmlns:x="urn:SOAPTest" qname="x:MyBean"
>              javaType="com.ts.distributed_apps.MyBean"
>
> java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
>
> xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
>     <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>              xmlns:x="urn:SOAPTest" qname="x:Data1"
>              javaType="com.ts.distributed_apps.Data1"
>
> java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
>
> xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
>     <isd:map encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
>              xmlns:x="urn:SOAPTest" qname="x:Data2"
>              javaType="com.ts.distributed_apps.Data2"
>
> java2XMLClassName="org.apache.soap.encoding.soapenc.BeanSerializer"
>
> xml2JavaClassName="org.apache.soap.encoding.soapenc.BeanSerializer"/>
>   </isd:mappings>
> ------------------------------------------------------------------
> And my client:
>
> URL url = new URL("http://localhost:8081/soap/servlet/rpcrouter";);
>
> // Build the call.
> Call call = new Call();
> call.setTargetObjectURI("urn:SOAPTest");
> call.setMethodName("server3");
> call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
>
> // Create the type mapping registry
> SOAPMappingRegistry smr = new SOAPMappingRegistry();
> BeanSerializer beanSer = new BeanSerializer();
> // Map the types.
> smr.mapTypes(
>         Constants.NS_URI_SOAP_ENC,
>         new QName "urn:SOAPTest", "com.ts.distributed_apps.MyBean"),
>         com.ts.distributed_apps.MyBean.class,
>         beanSer,
>         beanSer);
> smr.mapTypes(
>         Constants.NS_URI_SOAP_ENC,
>         new QName("urn:SOAPTest", "com.ts.distributed_apps.Data1"),
>         com.ts.distributed_apps.Data1.class,
>         beanSer,
>         beanSer);
> smr.mapTypes(
>         Constants.NS_URI_SOAP_ENC,
>         new QName("urn:SOAPTest", "com.ts.distributed_apps.Data2"),
>         com.ts.distributed_apps.Data2.class,
>         beanSer,
>         beanSer);
> // and tell the Call object to use it..
> call.setSOAPMappingRegistry(smr);
>
> // Set the Parameters
> Vector params = new Vector();
> params.addElement(
>         new Parameter(
>                 "MyBean",
>                 com.ts.distributed_apps.MyBean.class,
>                 soapTest,
>                 null)); //soapTest is my bean
> call.setParams(params);
>
> // Invoke the call.
> Response resp = null;
> try
> {
>         resp = call.invoke(url, "");
> }
>
> Any suggestion, what I´m coding wrong?
>
> regards,
> Darko
>
>
> > Hi,
> >
> > You will need to register serializers and deserializers for the Data1 and
> > Data2 classes with the SOAP mapping registry; once you do that
> > BeanSerializer should be able to handle the MyBean class (assuming that
> >  it
> > has all the properties of a bean, including the required setters and
> > getters...)
> >
> > Nirmal.
> >
> >
> >
> >
> >
> >
> >
> > Hello,
> >
> > I´m a newbee and I´m trying to use a bean for a RPC. My bean has so
> > me
> > protected String values with 2 Vector classes. Each Vector holds only o
> > ne
> > type of
> > Objects.
> > Example:
> > public class MyBean
> > {
> >    protected String test1;
> >    protected String test2;
> >    protected String test3;
> >    protected String test4;
> >    protected Vector collection1; //a collection of Data1
> >    protected Vector collection2; //a collection of Data2
> > }
> >
> > public class Data1
> > {
> >    protected java.lang.String Link;
> >    protected java.lang.String LinkName;
> > }
> >
> > public class Data2
> > {
> >    protected java.lang.String data;
> >    protected java.lang.String type;
> > }
> >
> > Is it possible to serialize and deserialize the bean? I´ve read in th
> > e API,
> > that the VectorSerializer isn´t able to deserialize the Vector.
>
> --
> GMX - Die Kommunikationsplattform im Internet.
> http://www.gmx.net
>
> GMX Tipp:
>
> Machen Sie Ihr Hobby zu Geld bei unserem Partner 1&1!
> http://profiseller.de/info/index.php3?ac=OM.PS.PS003K00596T0409a

Reply via email to