2012-02-16 3 views
4

이제 8080 포트에 gSOAP 독립형 서버를 개발했으며 SOAP RPC를 위해 작업하고 있습니다.gSOAP 독립 실행 형 서버를 사용하여 wsdl을 게시 하시겠습니까?

는하지만 클라이언트가 8080 포트에서 WSDL을 가져 오기위한 요청할 때 내 파일 시스템에 WSDL에게 WSDL 파일의 내용을 반환하고자합니다.

고객에게 wsdl을 반환하려면 어떻게해야합니까? 그 후

${GSOAP_ROOT_DIR}/bin/win32/xd -dwsdl ${CMAKE_CURRENT_BINARY_DIR}/${SOAP_NAME_SERVICE}.wsdl > ${CMAKE_CURRENT_BINARY_DIR}/wsdl.h 

:

+0

힘든 시간을 보낸 후 온라인 gSOAP 사용자 가이드에서 해결책을 찾았습니다. http : //www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc19.10 – softghost

답변

1

나는 (나는`내 CMakeList.txt에서이 일을) 내 WSDL의 embbed 버전을 생성하고이 명령 줄과 wsdl.h 파일을 저장하기 위해 XD 도구를 사용하여

. 
. 
. 
struct soap soap; 
soap_init(&soap); 
soap.fget = http_get; 
. 
. 
. 
012 :

int http_get(struct soap *soap) 
{ 
    soap_response(soap, SOAP_HTML); // HTTP response header with text/html 
    soap_send(soap, (const char*)wsdl); 
    soap_end_send(soap); 
    return SOAP_OK; 
} 

그래서, 내가 모든 gSoap받은 명령을 GET으로 이끌이 기능을 구성, I, 즉 GET 요청에서 매개 변수를 이끌 더 좋을 수있는이 기능을 구현

그런 다음 서버가 HTTP/GET 요청을 받으면 함수가 호출되어 wsdl 파일을 보냅니다. 원하는 경우 런타임에서 WSDL 파일을 읽고 soap_send()를 보내서 내가했던 것처럼 코드에 WSDL을 포함시킬 수 있습니다.