[vwnc] webservice marshaling problem

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[vwnc] webservice marshaling problem

Martin Rubi
Hi.
While trying to use a wsdl client I run into this odd behaviour: I generated a wsdl client with the wizard.
It generated this hierarchy:
 
Object
    Class1
        Class2
            Class3
 
All 3 classes have instance variables of their own.
Now, when I instantiate a Class3, it only marshals the elements from Class3 and Class2, but ignores the ones in the Class1.
I'm positive that I'm setting a value for a Class1 instance variable.
I'm thinking in pushing down the elements in the the wsdl schema from Class1 to Class2 and rebuild the client, but am I missing something ? I've tried setting the AllowDerivedTypes flag on and off, but the results were the same. Any hints ?
 
thanks in advance
martin

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] webservice marshaling problem

Kogan, Tamara

> While trying to use a wsdl client I run into this odd behaviour: I
> generated a wsdl client with the wizard.
> It generated this hierarchy:
>
> Object
>     Class1
>         Class2
>             Class3
>
> All 3 classes have instance variables of their own.
> Now, when I instantiate a Class3, it only marshals the elements from
> Class3 and Class2, but ignores the ones in the Class1.
> I'm positive that I'm setting a value for a Class1 instance variable.
> I'm thinking in pushing down the elements in the the wsdl schema from
> Class1 to Class2 and rebuild the client, but am I missing something ?
I've
> tried setting the AllowDerivedTypes flag on and off, but the results
were
> the same. Any hints ?

AllowDerivedTypes flag doesn't help in this case. The Class3 marshaler
has to have relations from both Class1&Class2 marshalers. Try to debug
ObjectMarshaler>>validate to see if the super class relations got
copied.


Tamara

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc
Reply | Threaded
Open this post in threaded view
|

Re: [vwnc] webservice marshaling problem

Martin Rubi
Tamara,
 
I did as you suggested, and found the problem.
What's happening is that #validate is being called for Class3, Class2 and Class1, in that specific order.
Then this happens:
1) #validate for Class3: it appends Class2 references to its own references (ref3, ref2)
2) #validate for Class2: it appends Class3 references to its own references (ref2, ref1)
 
I'm not sure where this order came from, but noticed that is the same order that appears in the declaration in
 WebServiceClient class>>x2oBinding.
 
So my fix was to change the order in the #x2oBinding declaration.
Now it works as the order is:
1) #validate for Class2: it appends Class1 references to its own references (ref2, ref1)
2) #validate for Class3: it appends Class2 references to its own references (ref3, (ref2, ref1))
 
Anyway, thank you very much for your answer.
 
best regards
martin
----- Original Message -----
Sent: Friday, September 12, 2008 5:40 PM
Subject: RE: [vwnc] webservice marshaling problem


> While trying to use a wsdl client I run into this odd behaviour: I
> generated a wsdl client with the wizard.
> It generated this hierarchy:
>
> Object
>     Class1
>         Class2
>             Class3
>
> All 3 classes have instance variables of their own.
> Now, when I instantiate a Class3, it only marshals the elements from
> Class3 and Class2, but ignores the ones in the Class1.
> I'm positive that I'm setting a value for a Class1 instance variable.
> I'm thinking in pushing down the elements in the the wsdl schema from
> Class1 to Class2 and rebuild the client, but am I missing something ?
I've
> tried setting the AllowDerivedTypes flag on and off, but the results
were
> the same. Any hints ?

AllowDerivedTypes flag doesn't help in this case. The Class3 marshaler
has to have relations from both Class1&Class2 marshalers. Try to debug
ObjectMarshaler>>validate to see if the super class relations got
copied.


Tamara

_______________________________________________
vwnc mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/vwnc