본문 바로가기

Programming

gsoap (1)

gsoap 에 대해서 기본적인 것 부터 시작해보자


http://www.cs.fsu.edu/~engelen/soap.html



본 글에서부터는 오로지  C++에 대해서만 언급한다. 물론 gsoap 은 C 로도 프로그래밍이 가능하지만, C++로 하는것이 왠지..

그리고 soap에 대해서는 다루지 않는다.


gsoap을 하기위해서는 기본적으로  wsdl2h와 soapcpp2를 이용하여 wsdl, schema로부터 데이터를 바인딩하고(헤더파일 생성) soapcpp2로 stub, skeleton 코드(서버, 클라이언트 베이스) 를 생성한다는 것... ^^

  • The wsdl2h WSDL/schema importer and data binding mapper tool.
  • The soapcpp2 stub/skeleton compiler and code generator


오늘은 간단히 gsoap을 이용하여 사칙 연산을 해보도록 하겠다.


1. wsdl2h -s -o calc.h http://www.genivia.com/calc.wsdl

==> calc.wsdl 를 참고하여 calc.h 를 생성한다. 데이터 구조..


2. soapcpp2 -i -C calc.h

==>  여러 파일들이 생성될 것이다. xml, proxy 파일, soap 정의 등


3. test.c 만들기

#include "soapcalcProxy.h" 
#include "calc.nsmap" 
int 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); 
   service.destroy(); // delete data and release memory 
}


test.cpp로 저장하고

g++ test.cpp soapcalcProxy.cpp soapC.cpp -lgsoap++ 로 컴파일 하면 끝...

간단하다.


4. ./a.out 실행 결과

calc3$ ./a.out 

The sum of 1.0 and 2.0 is 3