Ephemeris Lappis a écrit :
Hello.
I'm not sure i have understood it all. Sincerly, i remember, years ago, i had a look at the CORBA/GIOP/IIOP marshalling protocols, and finished the day with the same headache ! But, once more, we were lucky : we had IDL to write our interfaces...
As i understand, wsdl doesn't give a clear difference between strict document style, and a wrapped form, and both client and server must have some code to serialize or deserialize a multi-part body according to, respectively, the client data form or the server implementation form. I suppose stubs do that.
Despite my problems with the java2wsdl task, i have finally use a 'wrapped'
axis wsdl to generate my client stubs for a single operation service that
takes a simple javabean argument (a string and an int). I use the SUN WTK
2.1 with its first JSR172 implementation, that only supports the
document/literal as specified. The service interface has been generated with
2 arguments : the string and the int. In a former test, using a true
document/literal wsdl, generated with the SUN JWSDK 1.3, the generated
operation had a single argument of a generated javabean type, as expected.
In this test case, a 2 attributes bean generates a 2 parameters method, but
in a true project with 50 attributes javabeans... supposing client and
server can communicate !
You just have to wrap your 50 attributes in a java bean. Like : <soap:envelope> <doSomething> <myBean> <firstElement/> <secondElement/> ... </myBean> </doSomething> </soap:envelope>
Since it's 'wrapped', you need to wrap the whole bean argument in another element <doSomething>.
My deduction : 'wrapped' is not 'document' for JSR172 ! I think i've readI don't know JSR172, but document-style services can really be anything you like as long as it's correctly described in the WSDL.
the JSR172 requires WS-I Basic Profile compliance...
-- Julien