안녕하세요! gSOAP 관련 질문입니다.
안녕하십니까...
제가 gSOAP을 이용하여 Qt(C++)로 웹서비스에 접속하여 데이터를 주고 받는것을 진행했습니다.
현재 WebService1은 제가 Number 를 주면 WebService1측에서 Number에 해당하는 정보들은 저한테 줍니다.
여기서 _ns1__Submit 이라는 클래스가 있는데.
이 클래스는 제가 웹서비스에 전송할 데이터를 멤버로 가지고있습니다. (Number) 하나를 가지고 있음.
따라서 _ns1__Submit 이라는 클래스의 멤버에 Number를 저장하고
Proxy에 있는 함수인 Submit 이라는 것에 _ns1__Submit을 넘겨주면 됩니다.
여기까지는 순조롭게 진행 되었으나.
WebService2가 Open되었습니다.
webService2는 이번에는 제가 Number에 해당하는 많은 정보들을 submit하면 결과 Result를 받는 웹서비스입니다.
gSOAP을 이용하여 WebService2 에 해당하는 스텁헤더,프록시 등등 웹서비스에 필요한
파일들을 만들고 WebService1에서 했던것처럼 제가 현재 작업하고있는 라이브러리에 파일들을 추가하였습니다.
여기서 , WebService2에도 _ns1__Submit 이라는 클래스가 있는데..
WebService2의 _ns1__Submit에는 전송할 데이터를 멤버로 가지고있습니다
(WebService1 에는 Number만 전송하면 되므로 Number멤버 하나만 가지고있지만 , WebService2에는 여러 정보들을
보내야 하므로 여러 멤버들을 가지고있음 )
여기서 문제입니다....
일단 gSOAP으로 만들어진 파일중 nsmap 파일 (네임스페이스 이름이 충돌납니다)
=> webService1 과 webService2 네임스페이스 이름이 같음.
또, 전송하고 받는 멤버 / 개수만 다를뿐 이름들이 같습니다.
그러므로 2가지 웹서비스를 한 라이브러리에서 진행 할 때 이름들이 충돌이 납니다.
구글링으로 알아본결과.
https://stackoverflow.com/questions/28692807/gsoap-with-multiple-wsdls
의 내용처럼 해 보았는데. _ns1__Submit 의 내용이 추가가되는것이 아니고 덮어쓰여져서 결국은 webService1에 해당하는 _ns1__Submit 멤버만 가지고있습니다.
따라서 webService2에 전송할 데이터들을 _ns1__Submit에 담을수가 없습니다.
2가지 웹서비스를 합쳐서 gSOAP의 header,cpp,nsmap 파일들을 만드는 방법은 없는건가요...?
구글링으로 한계가있는거같아서 질문드립니다.
감사합니다.!
정리 먼저 해봅니다.
//
gSOAP
Qt(C++)로 웹서비스에 접속하여 데이터를 주고 받는것을 진행
//
WebService1 <-------- Number 멤버 하나
WebService1 Number에 해당하는 정보 ----------->
//
//
//
gSOAP ----> WebService2 (스텁헤더,프록시 등등 웹서비스에 필요한 파일들 생성)
//
WebService1 ---- (라이브러리에 파일들을 추가)
//
WebService2 - class _ns1__Submit{ 전송할 데이터를 여러 멤버들 }
//
gSOAP으로 만들어진 파일중 nsmap 파일 (네임스페이스 이름이 충돌납니다)
=> webService1 과 webService2 네임스페이스 이름이 같음.
//
전송하고 받는 멤버 / 개수만 다를뿐 이름들이 같습니다.
//
2가지 웹서비스를 한 라이브러리에서 진행 할 때 이름들이 충돌이 납니다.
//
구글링으로 알아본결과.
https://stackoverflow.com/questions/28692807/gsoap-with-multiple-wsdls
_ns1__Submit 의 내용이 덮어쓰여져서. webService1에 해당하는 _ns1__Submit 멤버만 가지고있습니다.
webService2 에 전송할 데이터들을 _ns1__Submit에 담을수가 없습니다.
2가지 웹서비스를 합쳐서 gSOAP의 header,cpp,nsmap 파일들을 만드는 방법은 없는건가요...?
//
//-------------------------------
//
// 비슷한 내용이 보이네요. ㅇ_ㅇ;;
//
//-------------------------------
//
gsoap 사용 시 namespace/xml tag 문제
https://kldp.org/node/137244
gSOAP-2.7 과 gSOAP-2.8 차이에 의한 SOAP stub 컴파일 문제 - 해결되었습니다.
https://kldp.org/node/155400
php pear로 닷넷서버와 SOAP통신하기.
https://kldp.org/node/51665
pear에서 생성하는 xml은
위의 방식으로 생성하게 됩니다만,
닷넷서버가 알아들을라면
위와 같이 해야합니다.
soap library와 xml parser 질문이요
https://kldp.org/node/105278
How to combine multiple clients and servers into one executable?
http://alien.cern.ch/cache/gsoap2.7-2.7.10/gsoap/samples/link++/README.txt
Thread: How 2 Combine Multiple Client/Server implementations into one executable in gSOAP
http://forums.codeguru.com/showthread.php?371355-How-2-Combine-Multiple-Client-Server-implementations-into-one-executable-in-gSOAP
#346 Passing multiple WSDL files to wsdl2h doesn't work
https://sourceforge.net/p/gsoap2/bugs/346/
ONVIF Device Manager - SOAP CAM 프로그램
https://sourceforge.net/projects/onvifdm/
8 The wsdl2h WSDL and Schema Importer
https://www.cnblogs.com/Arrays/archive/2013/06/11/3131873.html
android / platform / external / gsoap / master / . / wsdl / README.txt
https://android.googlesource.com/platform/external/gsoap/+/master/wsdl/README.txt
SOAP Code Generation - SOAP UI 프로그램
Code Generation Tools for Web Services
https://www.soapui.org/soap-and-wsdl/soap-code-generation.html
CurrencyConvertor: How to Use gSOAP and Webservices, Part One
https://www.codeproject.com/Articles/17958/CurrencyConvertor-How-to-Use-gSOAP-and-Webservices
wsdl을 .h로 만들고.
wsdl2h -o WSCurrencyConv.h CurrencyConvertor.wsdl
.h를 Inport 해서. xml 생성 ??
soapcpp2 -ID:\gsoap-win32-2.7\Import WSCurrencyConv.h
gsoap header generation => wsdl mismatch
https://forums.parasoft.com/discussion/2363/gsoap-header-generation-wsdl-mismatch
----------------------------------------------------------------------------
젊음'은 모든것을 가능하게 만든다.
매일 1억명이 사용하는 프로그램을 함께 만들어보고 싶습니다.
정규 근로 시간을 지키는. 야근 없는 회사와 거래합니다.
각 분야별. 좋은 책'이나 사이트' 블로그' 링크 소개 받습니다. shintx@naver.com
댓글 달기