Soapcpp2

pchero on December 20th, 2013

회사 프로젝트로 wsdl 파일을 이용한 웹 서비스 프로그램을 제작해야 할 일이 있었다. 물론 사용 언어는 C. 먼저 wsdl 파일들에서 header 파일을 추출해야 했다. 이를 위해서 사용한 프로그램은 wsdl2h 총 3개의 wsdl 파일에서 header 파일을 추출해야 했다. 다음의 명령어를 사용했다. $ wsdl2h -c -o SoapEnv.h SendSms.wsdl $ wsdl2h -c -n SendSms -o SendSms.h SendSms.wsdl $ wsdl2h -c -n ReceiveSms -o ReceiveSms.h ReceiveSms.wsdl $ wsdl2h -c -n SmsNotificationManagerService -o SmsNotificationManagerService.h SmsNotificationManagerService.wsdl 위의 명령어를 잘 보면 추출해야 하는 wsdl 파일은 3개인데, 사용한 명령어는 총 4개이다. 정확히는 SendSms.wsdl 파일에서 두개의 header 파일을 추출했다. 그 이유는 실제 컴파일과 라이브러리 구현에 사용할 gsoap를 위해서 기본 header 파일이 필요했기 때문이다.  그리고, 위에 나타낸 옵션 중, −c 옵션은 c 언어를 위한 헤더 파일 생성 옵션, −n 옵션은 namespace 영역을 구분짓기 위해 사용한 옵션이다. 하나 이상의 wsdl 파일을 사용한 라이브러리 제작시, −n 옵션이 특히 중요한데, 이유는 −n 옵션 없이 wsdl2h 를 사용할 경우, 여러개의 wsdl 사용시 서로 혼합된 namespace 영역을 사용하기 때문이다. 이는 나중에 wsdl 파일을 추가 하게 될 경우, 프로그램 코드상에서 호출되는 메소드 이름이 변경이 되는 등 여러모로 곤란이 생긴다. 때문에 반드시 필요한 옵션이다. ref: http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc8 wsdl2h 를 사용하면 각각의 헤더 파일들이 만들어 진다. 이렇게 만들어진 헤더파일들을 이용해 실제 C 에서 사용 가능한 코드로 만들어줘야 한다.이를 해주는 프로그램이 soapcpp2 이다. 이번 프로젝트에서 다음의 명령어/옵션을 사용했다. $ soapcpp2 -C -c SoapEnv.h $ soapcpp2 -C -c -n -pSendSms […]

Continue reading about Using wsdl files on C