天天看點

Linux gsoap 通路Jira

下載下傳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 生成的可執行檔案名。

後面的是依賴檔案。

通過如下方式執行。

./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;

}

繼續閱讀