Watch, Follow, &
Connect with Us
Public Report
Report From: Delphi-BCB/SOAP/WSDL Importer- BCB    [ Add a report in this area ]  
Report #:  82855   Status: Closed
C++ WSDL import generates non-working code
Project:  C++Builder Build #:  14.0.3593.25826
Version:    14.0 Submitted By:   Christian Myksvoll
Report Type:  Basic functionality failure Date Reported:  3/10/2010 12:27:07 AM
Severity:    Serious / Highly visible problem Last Updated: 4/23/2013 8:21:16 AM
Platform:    All platforms Internal Tracking #:   275442
Resolution: Feature Removed (Resolution Comments) Resolved in Build: : XE4
Duplicate of:  None
Voting and Rating
Overall Rating: No Ratings Yet
0.00 out of 5
Total Votes: 5
Description
When using a C++ imported WSDL class, the following webservice does NOT work correctly:
http://tsg-sim.telenor.no/TSG/services/TSGBasic?wsdl

When using a Delphi imported WSDL class, the same web service DOES work correctly.
Steps to Reproduce:
1) Import using C++ WSDL importer (use standard import settings):
http://tsg-sim.telenor.no/TSG/services/TSGBasic?wsdl

Add the generated C++ class to a clean VCL Forms Application project, include the generated header file add the following code in default form's constructor and run the program:

//------------------------------------
_di_TSGBasic tsgb = GetTSGBasic(false, "", 0);

//input values
String userId = "someUserId";
String password = "somePassword";
String appId = "someAppId";

//return values
ResponseType* response = 0;
String masterSession = "";
tsgb->login(userId, password, appId, response, masterSession);
//------------------------------------

The ResponseType pointer (response) should now point to a ResponseType object with the error message "Authentication failed". Instead the pointer is NULL. The same kind of error happens with other methods in the web service.


2) Now restart C++ Builder and import the WSDL again using the Delphi WSDL importer (make sure all projects are closed, select Component -> Import WSDL, choose Delphi as language, use standard import settings).

Remove the generated C++ class from the project, and add the generated Delphi class to the project instead.

Run the program. The response pointer now points to a ResponseType object with the expected error message. The other methods in the web service also works as expected (they depend on a successful login with a valid userId and password).


I have attached a zip file with a project that uses C++ imported WSDL and a project that uses Delphi imported WSDL.
Workarounds
Use Delphi WSDL importer instead of C++ WSDL importer.
Attachment
82855.zip
Comments

Tomohiro Takahashi at 3/12/2013 6:37:23 PM -
This is a comment from internal tracking system.
<<<<<<<<
The wsdl/url no longer available.
>>>>>>>>

Server Response from: ETNACODE01