Problem:
WSDL syntax ( WSDL tutorial: http://www.w3schools.com/wsdl/default.asp ) allows a WSDL file to have more than one WSDL tag <port > and <binding > and <portype > .
Unfortunately, at the time this article was written, the Micro Focus tool ( Net Express menu bar->Service->Generate Client->using WSDL), Our Web Service Client 'generator' , only uses one port (the first one) and includes all operations within the binding for that port.
How to you create, in the Cobol Web Service Client, ALL THE OPERATIONS defined in the .WSDL which has multiple <port > & ...?
You'll have to modify the .WSDL so it just uses ONE
<port > and <binding > and <portype > tags.
Enhancement request have been raised so the MF tool, our Web Service Client 'generator', can consume WSDLs using multiple <port > and <binding > and <portype > tags. These should be included in later versions of Net Express.
Resolution:
How to proceed?
.ZIP attached shows it.
==================
The 'base' level of the .ZIP attached contains 3 .WSDL files,
--> file WSOPEsInitialMF-WS-on-MFES.wsdl is a .WSDL file generated by MF Interface toolkit in Netx project located on sub-directory MF-WS-on-MFES of the .zip
--> file WSOPEstwoPorts.Wsdl is just a modification of file above (WSOPEsInitialMF-WS-on-MFES.wsdl) so it uses 2 WSDL tags <port > and <binding > and <portype >.
File used
in C# projects of sub-directory WSDLtwoPorts
and in Netx project of sub-directory WScobolClientFromForeignWSDLTwoPorts
--> file WSOPEsonePortMODIFIED.wsdl is just a modification of file above (WSOPEstwoPorts.Wsdl) so it uses only one WSDL tag <port > and <binding > and <portype >.
File used in Netx project located
on sub-directory WScobolClientFromForeignWSDLonePortMODIFIED
==================
Sub-directory MF-WS-on-MFES
contains a Net Express project: with a COBOL program deployed as a Web Service on
MF Enterprise Server
This Web Service contains two 'operations': WSOpeone and WSOpetwo
The .WSDL generated by MF tools for this Web Service uses ONLY one WSDL <port >...
Sub-directory WSDLtwoPorts
contains a C# project which consumes the .WSDL above.
note that the .WSDL of previous STEP was modified by hands so it uses
multiple <port > and <binding > and <portype > tags.
Running the C# project just shows that '.NET' correctly handle multiple <port > ...
and can invoke a Web Service deployed on MF Enterprise Server
Sub-directory WScobolClientFromForeignWSDLTwoPorts
contains a Net Express project:whith COBOL generated client from WSDL which
consumes the Web Service ( .WSDL with multiple <port > ... ) of the previous STEP.
We see, here, that Our Web Service Client generated the code ONLY for 'operation'
WSOpeone...... This is the issue !!!!!!!
Our Web Service Client( Net Express menu bar->Service->Generate Client->using WSDL),
did'nt generate the code for WSOpetwo !!!!!!!
Sub-directory WScobolClientFromForeignWSDLonePortMODIFIED
contains a Net Express project:whith COBOL generated client from WSDL.
The .WSDL used, WSOPEsonePortMODIFIED.wsdl, is a modification of .WSDL of the
previous step.... so it just uses one WSDL <port > ....
We see, here, that Our Web Service Client generated the code for 'operations' WSOpeone...... AND WSOpetwo