gSoap 指定输入参数 With class Compound Data Type
gSoap specify Input parameter With class Compound Data Type
我正在尝试创建一个将 class 作为参数之一的方法。当我从客户端发送到服务器时,我发现发送的对象总是空的
这是我用来生成服务器和客户端的 .h 文件
class FamilleProduit
{
private:
int Id;
std::string Libelle;
public:
FamilleProduit();
~FamilleProduit();
int getId();
void setId(int value);
std::string getLibelle();
void setLibelle(std::string value);
};
int ns__ajouterByType ( FamilleProduit familleproduit, bool* result);
int ns__ajouterByLibelle ( std::string libelle, bool* result);
这是客户
.......
struct soap m;
FamilleProduit f;
f.setLibelle("byTypeLocal");
soap_init(&m);
soap_call_ns__ajouterByType(&m,server,"",f,&res);
.........
这是服务器部分
int ns__ajouterByType(struct soap* soap, FamilleProduit f, bool *result){
cout<<"Ajout FamilleProduit "<<f.getLibelle()<<endl;
return SOAP_OK;
}
我发现 FamilleProduit 对象总是空的
For information i'm using the same code to send a string and i have no
problem.
请大家帮忙,谢谢大家
我发现了问题,它在 class FamilleProduit
的声明中,我必须把属性 public。我不知道为什么!但它有效。
新的 .h 文件
// Content of file "Test.h":
//gsoap ns service name: Test
//gsoap ns service protocol: SOAP
//gsoap ns service style: rpc
//gsoap ns service encoding: encoded
//gsoap ns schema namespace: urn:MutexColisage
class ns1__FamilleProduit
{
int Id;
std::string Libelle;
ns1__FamilleProduit();
~ns1__FamilleProduit();
int getId();
void setId(int value);
std::string getLibelle();
void setLibelle(std::string value);
};
int ns__ajouterByType ( ns1__FamilleProduit *familleproduit, bool* result);
int ns__ajouterByLibelle ( std::string libelle, bool* result);
我正在尝试创建一个将 class 作为参数之一的方法。当我从客户端发送到服务器时,我发现发送的对象总是空的 这是我用来生成服务器和客户端的 .h 文件
class FamilleProduit
{
private:
int Id;
std::string Libelle;
public:
FamilleProduit();
~FamilleProduit();
int getId();
void setId(int value);
std::string getLibelle();
void setLibelle(std::string value);
};
int ns__ajouterByType ( FamilleProduit familleproduit, bool* result);
int ns__ajouterByLibelle ( std::string libelle, bool* result);
这是客户
.......
struct soap m;
FamilleProduit f;
f.setLibelle("byTypeLocal");
soap_init(&m);
soap_call_ns__ajouterByType(&m,server,"",f,&res);
.........
这是服务器部分
int ns__ajouterByType(struct soap* soap, FamilleProduit f, bool *result){
cout<<"Ajout FamilleProduit "<<f.getLibelle()<<endl;
return SOAP_OK;
}
我发现 FamilleProduit 对象总是空的
For information i'm using the same code to send a string and i have no problem.
请大家帮忙,谢谢大家
我发现了问题,它在 class FamilleProduit
的声明中,我必须把属性 public。我不知道为什么!但它有效。
新的 .h 文件
// Content of file "Test.h":
//gsoap ns service name: Test
//gsoap ns service protocol: SOAP
//gsoap ns service style: rpc
//gsoap ns service encoding: encoded
//gsoap ns schema namespace: urn:MutexColisage
class ns1__FamilleProduit
{
int Id;
std::string Libelle;
ns1__FamilleProduit();
~ns1__FamilleProduit();
int getId();
void setId(int value);
std::string getLibelle();
void setLibelle(std::string value);
};
int ns__ajouterByType ( ns1__FamilleProduit *familleproduit, bool* result);
int ns__ajouterByLibelle ( std::string libelle, bool* result);