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