我使用 gSoap 在C ++中实现了一项服务。我是从多个现有WSDL文件创建的。
现在我需要为服务的每个虚拟方法提供一个定义。
让我们看一下soapMyServiceService.h文件中生成的一个方法声明:
///
/// Service operations (you should define these):
/// Note: compile with -DWITH_PURE_VIRTUAL for pure virtual methods
///
/// Web service operation 'Initialize' (returns error code or SOAP_OK)
virtual int Initialize(_ns5__Initialize *ns5__Initialize, _ns5__InitializeResponse *ns5__InitializeResponse);
实际上,我期待得到:
virtial string Initialize(int var_a , int var_b , string var_c);
但是现在,我需要实现它生成的内容并返回SOAP代码:
int MyService::Initialize(_ns5__Initialize *ns5__Initialize, _ns5__InitializeResponse *ns5__InitializeResponse)
{
// HOW can I get here the received values for that I can able to implement my logic?
return SOAP_OK;
}
如何获取接收到的值(客户端为var_a,var_b和var_c发送的值),然后为他设置返回的字符串,同时返回错误代码...
您通常如何实施服务的逻辑?
谢谢。
答案 0 :(得分:0)
在您的服务方法实现中MyService :: Initialize(_ns5__Initialize * ns5__Initialize,_ns5__InitializeResponse * ns5__InitializeResponse) 最后一个参数是响应参数,其余的都是输入参数,这里你只有一个输入参数类型为_ns5__Initialize,它可能是一个结构,如果你访问它的成员,你将得到请求的所有输入参数。