Bonjour, j'ai un petit problème avec l'utilisation de la librairie gsoap, je dois l'utiliser pour un projet et je voudrais bien qu'une de mes fonctions renvoit un argument de type vector.
Seulement j'ai beau mettre des éléments dans le vector il ne les sérialise pas...
Je ne vois pas du tout pourquoi ca ne fonctionne pas j'ai fais la même chose que dans la documentation...
Voici le code de mon fichier .h pour les vector :
Le code du serveur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 #import "stlvector.h" typedef int xsd__int; typedef double xsd__double; typedef std::string xsd__string; struct empty {} ; class cb__Test { public : std::vector<xsd__int> * result ; } ; int cb__sendRequest( xsd__string moduleName, xsd__string action, xsd__string parameters, cb__Test * response) ;
Le message envoyé par le serveur et recu par le client :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 int cb__sendRequest(struct soap *soap, string aModuleName, string action, string parameters, cb__Test * response) { response = new cb__Test() ; response->result = new vector<int>() ; ... response->result->push_back(2); response->result->push_back(25) ; printf("nb : %d\n",response->result->at(1)) ; ... return SOAP_OK; }
Le tout me donnant un sympathique segfault à l'exécution quand je veux utiliser le résultat de la fonction.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cb="urn:combus" xmlns:hm="urn:hwMan" xmlns:ld="urn:ldap"><SOAP-ENV:Body><cb:Test></cb:Test></SOAP-ENV:Body></SOAP-ENV:Envelope>
Toute aide est la bienvenue.
Merci
Partager