何人かの人がこの質問をしているのに気づきましたが、満足のいく答えを見つけることができませんでした。gSOAPを使用して、wsdlドキュメントからc++スタブを作成しています。問題は、soapメッセージを送信するときにgSOAPが名前空間の前にsoapメソッド名を付けることです。たとえば、送信<ns2:Inform></ns2:Inform>
する必要があるときに送信します<Inform></Inform>
誰かがこの問題を解決する方法を知っていますか?
編集:
私はc ++プロキシバージョンを使用しているため、以下で選択した回答は最初は機能しませんでしたが、次のコードを使用してサービスオブジェクトを作成するだけでした。
exampleSOAPProxy service=exampleSOAPProxy(SOAP_XML_DEFAULTNS,SOAP_XML_DEFAULTNS);
SOAP_XML_DEFAULTNSは、要素から名前空間プレフィックスを削除し、各要素に名前空間を明示的に追加するだけで、実際にはすべてにデフォルトの名前空間を使用しないため、紛らわしい名前です。
アプリケーションをコンパイルするときに、コンパイル/リンクステートメントに-DWITH_SOAPDEFS_Hを追加する必要がありました。-DWITH_SOAPDEFS_Hフラグを設定するとインポートされるため、/ usr / local /include/にsoapdefs.hというファイルを作成する必要があることに注意してください。stdsoap2.hにインクルードと宣言を追加するために使用する単なるヘッダーファイル