on 06-23-2005 1:46 PM
We are attempting to create some Web Service proxy objects from some WSDL files. Some of the WSDL files contain message definitions with multiple parts such as
<i><wsdl:message name="GetNewSubmissionsResponse">
<wsdl:part element="impl:Count" name="Count"/>
<wsdl:part element="impl:MoreAvailable" name="MoreAvailable"/>
<wsdl:part element="impl:IRSData" name="IRSData"/>
<wsdl:part element="impl:StateSubmissions" name="StateSubmissions"/>
</wsdl:message></i>
This always generates the error message <b>SPRX046 - "
Msg Proxy generation terminated: Message must have exactly one part".</b>
Is this just a limitation with SAP Web AS? Has anyone dealt with this before? These WSDLs work in other environments (AXIS Java, XML Spy etc).
Thanks
Hi all -
I'm getting this same error, but because the message in the WSDL provided by our vendor has NO parts - not too many.
Can anyone provide any advice how to change the WSDL so that I can still get it to operate correctly with our vendor's web service, but have a part within the message? Clearly, I need it to be some kind of "void" value.
<wsdl:message name="addContactRequest">
<wsdl:part element="impl:add-contact-request" name="add-contact-request" />
</wsdl:message>
<wsdl:message name="addContactResponse" />
<wsdl:message name="removeRelationshipResponse" />
<wsdl:message name="removeAddressRequest">
<wsdl:part element="impl:remove-address-request" name="remove-address-request" />
</wsdl:message>
Thanks so much for your help!
Abby
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
Did you solve this issue. i was trying to create a client proxy from ABAP (WAS6.4) for
http://api.google.com/GoogleSearch.wsdl and hit with the same error.
Regards
Raja
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
It seems ABAP proxy only supports Document-Literal style WSDL. Document-literal style is supported by most Web services platforms, and is supposed to be most interoperable.
Per WS-I Basic Profile 1.0 (see [1])which provides interoperability guidance of using WSDL1.1, when the message part is defined using the @element attribute, the message can only be bound to so-called "document-Literal" style which in turn requires that the message contains only one part.The WSDL you provided violated the document-literal rules.
Have you tried to change the message definition a bit so it's BP conformant? Try defining a complex type for the subelements, then define an wrapper element to use that complex type, and finally let the message part to refer to the wrapper element. Something like,
<wsdl:message name="GetNewSubmissionsResponse">
<wsdl:part element="impl:GetNewSubmissionsResponseWrapper" name="myResponse"/>
</wsdl:message>
Sorry for the late reply.
Most of the operatoins in your WSDL are RPC style. I am not sure ABAP stack supports RPC styles at all.
If you redefine the messages and bindings using Document/literal so that the WSDL ends up with the same wired messages, it should work fine (Disclaimer: this is just my guess, I have never tested it myself)
If Google has paid more attention to WS-I and W3C and used document/literal style more often, your life is much easier. sigh.
Regards,
Kevin
Hi,
The ABAP stack as far as my knowledge of web services and WSDL in ABAP stack goes, does support it.
Can import the WSDL after making the changes locally to create the class and then can be used in the same way as it would have done via HTTP or through the URL WSDL class creation in ABAP stack.
User | Count |
---|---|
85 | |
23 | |
11 | |
9 | |
8 | |
5 | |
5 | |
5 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.