4
现在,我开发了一个8080端口上的gSOAP独立服务器,它正在为SOAP RPC工作。用gSOAP独立服务器发布wsdl?
但我想回到WSDL内容WSDL文件在我的文件系统,当客户端请求的8080端口上获取WSDL。
我能做些什么来将wsdl返回给客户?
现在,我开发了一个8080端口上的gSOAP独立服务器,它正在为SOAP RPC工作。用gSOAP独立服务器发布wsdl?
但我想回到WSDL内容WSDL文件在我的文件系统,当客户端请求的8080端口上获取WSDL。
我能做些什么来将wsdl返回给客户?
我用XD工具生成WSDL我的embbed版本,并将其存储使用此命令行一个wsdl.h文件(我真的在我的CMakeList.txt这样做):
${GSOAP_ROOT_DIR}/bin/win32/xd -dwsdl ${CMAKE_CURRENT_BINARY_DIR}/${SOAP_NAME_SERVICE}.wsdl > ${CMAKE_CURRENT_BINARY_DIR}/wsdl.h
之后,我实现了这个功能,可以更好地与GET请求参数引领:
int http_get(struct soap *soap)
{
soap_response(soap, SOAP_HTML); // HTTP response header with text/html
soap_send(soap, (const char*)wsdl);
soap_end_send(soap);
return SOAP_OK;
}
所以,我配置此功能,带领所有度日gSOAP的接收到的命令:
.
.
.
struct soap soap;
soap_init(&soap);
soap.fget = http_get;
.
.
.
然后,当您的服务器收到HTTP/GET请求时,您的函数将被调用并发送wsdl文件。如果你愿意,你可以在运行时读取WSDL文件,然后发送soap_send(),而不是象我那样在你的代码中嵌入WSDL。
经过一段时间后,我找到了在线gSOAP用户指南的解决方案:http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.10 – softghost 2012-02-17 17:53:38