Web reference WSDL not conforming to SOAP standard
I built a web service based on the BAPI_FLIGHT_GETLIST function module using the "create web service" wizard. The generated web service endpoint is active in SOAMANAGER transaction.
When I try to generate a proxy class in Visual Studio 2005 using the "Add web reference" tool the service method is shown as expected in the preview window. However, when I click the "Add Reference" button I get the following error message:
Custom tool warning: DiscoCodeGenerator unable to initialize code generator. No code generated.
The Solution Explorer window shows the Web Reference object generated with components Reference.map, Reference.cs and a WSDL file; however the Reference.cs proxy class has no code in it and there are no objects for the method parameters.
When running the WSDL.exe program from the command line, the following error message is generated:
Microsoft (R) Web Services Description Language Utility [Microsoft (R) .NET Framework, Version 2.0.50727.42] Copyright (C) Microsoft Corporation. All rights reserved. Warning: This web reference does not conform to WS-I Basic Profile v1.1. SOAP 1.1 binding was not found: WS-I's Basic Profile 1.1 consists of implementation guidelines that recommend how a set of core Web services specifications should be used together to develop interoperable Web services. For the 1.1 Profile, those specifications are SOAP 1.1, WSDL 1.1, UDDI 2.0, XML 1.0 and XML Schema. For more details on the WS-I Basic Profile v1.1, see the specification at http://www.ws-i.org/Profiles/BasicProfile-1.1.html. Warning: no classes were generated. Warnings were encountered. Review generated source comments for more details.
I've seen several documents that step through this process that work fine. Has anyone seen this issue before and found a solution?
I'm running NW2004s with SP14 on Windows Server 2003 R2. Clients are VS2005 on both XP & Vista - same result on both client environments.
Nadav Margalit replied
I'm not familiar with the tools you described to create the Web Service aboved SAP BAPI's, but i have 2 ideas which you can start with.
I am part of the team developed the "ESE for .NET" and on the last step of our tool we are using VS API to "Add Web Reference".
We have noticed 2 ocaasions that might interest you:
1. Can you please verify that the WSDL contains the "wsdl:binding" part ?
according to the error message you described you are missing the binding part.
As you know WSDL of .NET Web Service combined of 5 major sections: "wsdl:types, "wsdl:message, "wsdl:portType, "wsdl:binding" & "wsdl:service".
.NET proxy generation can't be executed on a WSDL based on a Service Definition only, it must have the "wsdl:binding" part which always comes only with
the End Points WSDL from SAP services.
2. Can you send me the WSDL file by email ? Nadav.Margalit@sap.com
3. Another important issue for Runtime of the Services - SAP Web Service schema is a little different than MS schema, you should look for "parameters" inside the WSDL and change it to "paramter".
Hope this information will help you,