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