我希望应用程序既是肥皂服务器又是肥皂客户端,怎么做?如何处理下面的问题?同一模块中的gSOAP服务器和客户端
假设soap服务器提供ServiceA,soap客户端将访问远程机器中的ServiceB,并且可以从ServiceA.h和ServiceB.h生成框架文件。
问题是从Service.h生成服务器代码并从ServiceB.h生成客户端代码,它们都生成三个文件:soapC.h,soapC.cpp,soapStub.h。因为他们在同一个项目中,他们会相互冲突。如何解决这个问题?
我希望应用程序既是肥皂服务器又是肥皂客户端,怎么做?如何处理下面的问题?同一模块中的gSOAP服务器和客户端
假设soap服务器提供ServiceA,soap客户端将访问远程机器中的ServiceB,并且可以从ServiceA.h和ServiceB.h生成框架文件。
问题是从Service.h生成服务器代码并从ServiceB.h生成客户端代码,它们都生成三个文件:soapC.h,soapC.cpp,soapStub.h。因为他们在同一个项目中,他们会相互冲突。如何解决这个问题?
我采取的方法是使用wsdl2h选项-qname产生的不同的服务到单独的C++的名字命名空间的定义。
请参见如何建立一个C++代码命名空间客户端或服务器在此gSOAP Manual
我得到了分割。
(gdb) bt
#0 0x0806642c in soap_getattrval()
#1 0x08066ebc in soap_peek_element()
#2 0x080658f7 in soap_element_begin_in()
#3 0x08071e9d in soap_envelope_begin_in()
#4 0x0034f449 in soap_call_ns1__MoperationC (
您需要三个文件合成一个,然后用soapcpp2选项生成soapC.h,soapH.h等 – Kahn