下載gsoap-linux-2.7.tar.gz(http://gsoap2.sourceforge.net/)到/test/gsoap
解壓gsoap-2.7.tar.gz
分別執行
./configure --prefix=/usr/local/gsoap
make
make install
cd /
#建立/jira檔案夾
mkdir /jira
cd /jira
#http://..../jira/rpc/soap/jirasoapservice-v2?wsdl 這個是jira的wsdl檔案
/usr/local/gsoap/bin/wsdl2h -c -o jira.h http://..../jira/rpc/soap/jirasoapservice-v2?wsdl
/usr/local/gsoap/bin/soapcpp2 -c jira.h
/usr/local/gsoap/bin/wsdl2h 是gsoap的安裝路徑
gcc -I /test/gsoap/gsoap-2.7/gsoap -o jiraclient jiraclient.c soapC.c soapClient.c /test/gsoap/gsoap-2.7/gsoap/stdsoap2.c
/test/gsoap/gsoap-2.7/gsoap ==>gsoap的下載源檔案解壓縮路徑
遇到error,就到指定的檔案裡把error函數刪除,直到沒有錯誤。警告沒關係。
如果編譯成功,會在/jira目錄裡產生 jiraclient可執行檔。
-o 產生的可執行檔名。
後面的是依賴檔案。
通過如下方式執行。
cd /jira
./jiraclient jiraname jirapwd
對於gcc -I /test/gsoap/gsoap-2.7/gsoap -o jiraclient jiraclient.c soapC.c soapClient.c /test/gsoap/gsoap-2.7/gsoap/stdsoap2.c
這個命令,經過測試 -I /test/gsoap/gsoap-2.7/gsoap可以省略。可以把 /test/gsoap/gsoap-2.7/gsoap/stdsoap2.c裡的stdsoap2.c stdsoap2.h
複製到 /jira檔案夾。這樣編譯命令就編程了
gcc -o jiraclient jiraclient.c soapC.c soapClient.c stdsoap2.c
下面是jiraclient.c的原始碼。
--------------------
jiraclient.c
--------------------
#include "soapH.h"
#include "jirasoapservice_v2SoapBinding.nsmap"
int main(int argc, char **argv)
{
struct soap soap;
soap_init(&soap);
char *retValue;
//soapStub.h 裡有soap_call_ns4__login函數,所有能調用的WebService方法都在這個檔案夾裡。
if(soap_call_ns4__login(&soap,NULL,NULL,argv[1],argv[2],&retValue) == SOAP_OK)
printf("%s ",retValue);
else
soap_print_fault(&soap, stderr);
soap_destroy(&soap);
soap_end(&soap);
soap_done(&soap);
retValue=null;
return 0;
}