iT邦幫忙

DAY 15
2

emacs的30天學習筆記系列 第 15

emacs 做中學第十五天:快速上手gsoap2

  • 分享至 

  • xImage
  •  

emacs 有一個令筆者很激賞的功能,我覺得遠超過編輯器的功能。就是按C-x C-f,
當沒有選檔案時,會進入檔案總管,而選擇檔案,可以快速開啟,這種混合檔案總管和編輯器的
使用愈用愈入迷。

另一個就是Esc-x shell切換到shell模式,有人常常會有把一些指令及輸出執行的結果,存起來,對emacs來講,shell 或檔案總管,都可以按你高興,另存成檔案,當下就另存,C-x C-w
這種設計理念,很直覺。

這一個禮拜進度嚴重落後,覺得除了是很熟的工作,任何的開發,總是計畫趕不上變化,
總有額外的挫折。
gsoap2是很有名的soap 的tool kit。然後,開速Get Started.

基本上,它會產生幾個指令工具,幫你產生必要的檔,所謂的toolkit,表示它是超強的程式產生器。

在教程裏,
http://www.cs.fsu.edu/~engelen/soapmain.html#howto
所舉的例子,從WSDL裏產生標頭檔,

無論是

wsdl2h -o XMethodsQuery.h http://www.xmethods.net/wsdl/query.wsdl

還是這個

wsdl2h -c -o quote.h http://services.xmethods.net/soap/urn:xmethods-delayed-quotes.wsdl

不知是不是因為年代久遠,都失敗。

無效的網址,不能抓wsdl下來。

還好邦友 antijava有分享web service,

wsdl2h -c -o etrans.h http://e-trans.iot.gov.tw/FIDSWebS/services/FIDSWS?wsdl

是ok的。

可以成功產生etrans.h

然後,按造教學,再下。

$ soapcpp2 -c etrans.h

產生了一堆檔案,

$ls
etrans.h FIDSWSSoapBinding.nsmap soapH.h
FIDSWSSoapBinding.ListArrival.req.xml quote.h soapServer.c
FIDSWSSoapBinding.ListArrival.res.xml soapC.c soapServerLib.c
FIDSWSSoapBinding.ListDeparture.req.xml soapClient.c soapStub.h
FIDSWSSoapBinding.ListDeparture.res.xml soapClientLib.c

照手冊的說法,

#include "soapH.h" // obtain the generated stub 
#include "Quote.nsmap" // obtain the generated XML namespace mapping table for the Quote service 
main() 
{ 
   struct soap *soap = soap_new();
   float quote; 
   if (soap_call_ns1__getQuote(soap, NULL, NULL, "IBM", quote) == SOAP_OK) 
      printf("Current IBM Stock Quote = %g\n", quote);
   else // an error occurred 
      soap_print_fault(soap, stderr); // display the SOAP fault on the stderr stream 
}

以我們的例子,
Quote.nsmap

quote字眼的,按成我們的etrans,就可以成一個小小的soap app。


明天繼續深入探討。


上一篇
emacs 做中學第十四天:談套件管理:mingw-get
下一篇
emacs 做中學第十六天:gsoap2 的實作
系列文
emacs的30天學習筆記38
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言