最近在try gSOAP ...
發現英文說明寫的不是很完整,造福一下未來想嘗試try的朋友吧...
首先下載安裝gsoap_2.7.17.tar.gz
i)./configure --prefix=/home/kenneth/project/SOAP --enable-samples
ii)make
iii)make install exec_prefix=/home/kenneth/project/SOAPExec
then, refer to http://www.cs.fsu.edu/~engelen/soapdoc2.html (gSOAP 2.7.17 User Guide)
(a)run ./wsdl2h -s -o calc.h http://www.genivia.com/calc.wsdl (disable STL)
(b)run ./soapcpp2 -i -C calc.h (-i:c++ , -C:only client)
接下來英文說明到這邊,會叫你寫個程式用剛剛產生的東東,
不過寫得不清不楚...
大概就是寫一個新的cpp, ex : soapClient.cpp
把內容貼進去如下,
======
#include "soapcalcProxy.h"
#include "calc.nsmap"
main()
{
calcProxy service;
double result;
if (service.add(1.0, 2.0, result) == SOAP_OK)
std::cout << "The sum of 1.0 and 2.0 is " << result << std::endl; else service.soap_stream_fault(std::cerr); }
======
把寫好的soapClient.cpp和soapC.cpp, soapcalcProxy.cpp一起編譯並使用-lgsoap++,
可以寫個makefile, 指定include和lib, 大概如下:
IPATHS = -I/home/kenneth/project/SOAP/include/
LPATHS = -L/home/kenneth/project/SOAPExec/lib
TARGET = $(TARGET_DIR)soapClient
CFLAGS += -w
LIBS += -lgsoap++
LFLAGS +=
CC = g++
LD = g++
LINKTAIL := -o $(TARGET)
OBJS = soapClient.$(OSUF) soapC.$(OSUF) soapcalcProxy.$(OSUF)
=======
make之後,會產生soapClient執行檔,
執行之後....
會出現...
[kenneth@OnePiece NewBuilds]$ ./soapClient
The sum of 1.0 and 2.0 is 3
>>>改成26 + 5, re-make, then ans is 31.
[kenneth@OnePiece NewBuilds]$ ./soapClient
The sum of 26.0 and 5.0 is 31
so soapClient application = SOAP client => access Web Service(server)
以上僅供參考...
沒有留言:
張貼留言