November 1, 2010

hasnain hasnain
Lab Rat
11 posts

[Solved] Gsoap with nokia Qt SDK problems

 

hi, i am using gsoap to generate c++ files from wsdl and then use those files in a qt mobile app. Everything works fine when i run app on simulator, but when i tried to run it on device(nokia 5800) it gives a lot of warning and and doesn’t run properly. then i tried to generate .sis using qt for Symbian command prompt it. “qmake” runs fine but “make sis” failed to create .sis. Any ideas how to make gsoap work on device. has any one done that before and is there any alternative to gsoap.

12 replies

November 24, 2010

dfaure dfaure
Lab Rat
42 posts

Yes, there’s an alternative to gsoap, with much better Qt integration: KDSoap.

http://www.kdab.com/products/kd-soap

It features a WSDL to C++ code generator, qmake integration, and many other things (sync and async calls, RPC and document mode, etc.)

 Signature 

David Faure (.(JavaScript must be enabled to view this email address))
KDE/Qt Senior Software Engineer
KDAB - Qt Experts - Platform-independent software solutions

December 2, 2010

sascha sascha
Lab Rat
7 posts

There is QtSOAP, a SOAP client library from Qt Solutions:
http://doc.qt.nokia.com/solutions/4/qtsoap/index.html

It cannot generate C++ code for the client side bindings, but it is fairly easy assemble the SOAP message yourself and parse the response. If you do not have to query a lot of different or complicated web services, it might be worth a try for its simplicity.

April 23, 2011

hasnain hasnain
Lab Rat
11 posts

I have accomplished it at time when I was desperate to use web services from Qt Nokia app. now when I got sometime so i wrote a wiki page this [developer.qt.nokia.com] . that might not be the best way to do it be at least it worked for me.

April 23, 2011

secretNinja secretNinja
Lab Rat
132 posts

There is an error in the link – “webservice_client” is doubled at the end :)

April 23, 2011

hasnain hasnain
Lab Rat
11 posts

http://developer.qt.nokia.com/wiki/how_to_use_gsoap_with_Qt_for_webservice_client

June 16, 2011

TobbY TobbY
Lab Rat
178 posts

does anyone run this on symbian device????

 Signature 

Code Code Code

June 16, 2011

TobbY TobbY
Lab Rat
178 posts

i have program on which create sis but exeption at runtime

 Signature 

Code Code Code

June 21, 2011

TobbY TobbY
Lab Rat
178 posts

gsoap works on symbian device. thanx..

i have resolved it now

 Signature 

Code Code Code

June 21, 2011

hasnain hasnain
Lab Rat
11 posts

• Download and unzip gsoap package from soure forge.
• gsoap package contains pre-built tools in “gsoap/bin” directory.
wsdl2h schema importer
soap2cpp stub/skeleton generator.
• You require .wsdl and .xsd files of web service to generate c++ stub.
• First use wsdl2h on .wsdl file it will generate .h file, then use soapcpp2 on generated .h file, this will generate .h and .cpp files to be included in Qt project.
• Before usinf wsdl2h you have to modify “typemap.dat” file, this file is present in ‘gsoap/ws’ directory. Add a line in this file defining namespace of your webservice. Give any name to namespace and copy string from your .wsdl file following the tag.
<definitions targetNamespace=http://something>
Add this line to “typemap.dat” file
Anyting =”http://something”.
• Now run wsdl2h on .wsdl and .xsd files (from command prompt)
wsdl2h –s -t(path of typemap.dat) –o (name of generated .h file e.g chatpp.h) pathand name of .wsdl file
(note .xsd file should be in same directory as .wsdl file)
• Then use soapcpp2 on generated .h file (we assume that name of generated file is chatapp.h)
soapcpp2 –i chatpp.h
this will generate multiple files
soapstub.h
soapH.h
soapC.cpp
soapchatappProxy.h
soapchatappProxy.cpp
chatapp.nsmap
soapchatappsetvice.h
soapchatappservice.cpp
and a xml file for each method in defined in .wsdl file.
• now add
soapstub.h
soapH.h
soapchatappProxy.h
as headers in to your qt project and then add
soapC.cpp
soapchatppProxy.cpp
as source
• add include path of yor generated file in .pro file of your qt project or simply copy all of generated files to your project directory. Also add path of “libws2_32.a” in your .pro file I my case it is as under
LIBS += C:/NokiaQTSDK/mingw/lib/libws2_32.a
• also add stdsoap2.h and stdsoap2.cpp from gsoap directory as header and source in your project.
• now include chatapp.nsmap and chatappProxy.h in your main.cpp.
make an object of chatappProxy and use it to communicate with webservice.
(above method worked for me while using gsoap with NokiaQtSDk on windows xp. )

June 25, 2011

TobbY TobbY
Lab Rat
178 posts

thank you so much for help.

 Signature 

Code Code Code

October 18, 2011

onhafoghefifo onhafoghefifo
Lab Rat
1 posts

TobbY can you share how you managed to solve your problem? Maybe others could benefit from this

February 16, 2012

apinho apinho
Lab Rat
2 posts

Hey there. I’ve followed all those steps and whenever I try to include the gsoap headers in a class other than the main.cpp i get this error when running the project in Qt Creator:

mwldsym2.exe: Multiply defined symbol: struct Namespace * namespaces (?namespaces@@3PAUNamespace@@A) in
mwldsym2.exe: files moc_maxintervaltimer.o, maxintervaltimer.o

 
  ‹‹ Namespace vs. Prefix - recommended naming practice for Qt libraries      Accessing GPS device from qt desktop(windows) App ››

You must log in to post a reply. Not a member yet? Register here!