問題タブ [gsoap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - gSoap、c++、クライアント アプリケーションで soapStub 宣言された引数を渡す方法
次の抜粋を含むプロジェクトは、gsoap で生成された c バインディングを使用するクライアント アプリケーションです ( gsoap - www.cs.fsu.edu/~engelen/soap.html )。プロジェクトは正常にビルドされますが、以下に示すメイン関数の行で中断します。
プロジェクト ヘッダー ファイルで次のように定義されています。
付属の .cpp ファイルで次のように定義されます。
main()で、読みやすくするためにサービスを宣言します。
これが私のmain.cppです
文字列を pInput に割り当てる際に私が間違っていることを知っている人はいますか?
ありがとう
c++ - gSoap: Webサービスアプリケーションを正常にシャットダウンする方法は?
gSoap を使用して Web サービスを作成しています。コンソール アプリケーションとして実行されます。私が見るすべてのgSoapの例では、リクエストはマルチスレッドバージョンでも for(;;;) のような無限ループでディスパッチされます。
しかし、たとえばユーザーがコンソールのスペースを押したときに、Web サービスを正常に終了させるにはどうすればよいでしょうか?
好ましい:
- 新しい接続の受け入れを停止します。
- 既存のものを提供します。
- アプリケーションを終了する
c++ - soapcpp2 バージョン 2.8.1 で欠落しているファイル
SOAP を使用して組み込みデバイスである SmartServer と通信する必要があるアプリケーションがあります。受け入れる SOAP メッセージには名前空間がありませんが、gSAOP はそれらを名前空間とともに送信します。したがって、それらは次のようになります。
これの代わりに:
最初に WSDL および XSD ファイルの修飾を非修飾に変更してから、ファイルを再生成し、非修飾を修飾に変更してみました。しかし、私が得た最高のものは
どちらの方が見栄えが良いですが、それでもリストには名前空間があります。
するとSOAP_XML_DEFAULTNSオプションを使わなければいけないというサイトを見つけたのでやってみました。これは最初はうまくいきませんでしたが、2.7.9l-0.2 (Debian の標準バージョン) の代わりにバージョン 2.8.1 を使用する必要があることがわかりました。そこで、Debian バージョンをアンインストールし、2.8.1 をダウンロードしてファイルをコピーしました。しかし、soapcpp2 でファイルを生成しようとすると、soapClient.cpp、soapClientLib.cpp、soapProxy.h、および多くの *.req.xml および *.res.xml ファイルが見つかりません。プロジェクトをコンパイルするには、soapClient.cpp ファイルが特に必要です。
INSTALL.txt で説明されているように、 gsoap/bin ディレクトリから標準バイナリを試し、 gsoap ディレクトリから src および wsdl ファイルを再構築しましたが、どれも思い通りに動作しません。
誰かが私をもう少し助けてくれますか?
問題がある場合、私は Debian Linux バージョン 5.0.8 (Lenny、古い安定版) 32 ビットを使用しています。
c++ - gSOAP名前空間プレフィックスの問題
何人かの人がこの質問をしているのに気づきましたが、満足のいく答えを見つけることができませんでした。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にインクルードと宣言を追加するために使用する単なるヘッダーファイル
c - gsoap ANSI C - gsoap 定義の ANSI C クライアント側呼び出しスタブを正しく使用する
gsoap の使用は初めてです。私は c++ のみを使用して 4 つの小さな成功を収めましたが、現在のプロジェクトでは、純粋な ANSI C (c++ ではない) を作成するためのソース コード生成オプションを設定する必要があります。サービスを正常に呼び出すことができないようです。エラー リターンは 0xC0000005 であり、次のコード スニペットが与えられた場合、私が別の方法で行うべきことについて誰かが提案できます:
スニペットには、
1. クライアント側関数の定義、
2. ns7 構造体の定義、
3. 簡単な呼び出しアプリケーションが含まれます:
ありがとうございます。
クライアント側の呼び出しは次のとおりです。
ns7 構造は次のとおりです。
以下は、クライアント側呼び出しを使用した単純なアプリケーション呼び出しサービスです。
web-services - Ubuntu で gSOAP Web サービスをデプロイする方法は?
Ubuntu での Web サービスの展開について疑問があります。これは gSOAP を使用して実装されており、展開する必要があります。たとえば、Web サイト (たとえば ASP .NET で開発されたもの) からアクセスできるようにする必要があります。
CGI、Ubuntu、Apache のトピック全体に混乱してしまいました。これまで、ASP .NET で Web サービスを実装し、それを Microsoft ISS に展開することができました。それ以外にも、ASP .NET を使用して、WSDL で記述された gSOAP Web サービスにアクセスできます。
独自の Web サービスをデプロイする手順は? より具体的な質問がいくつかあります。
- WS を CGI としてコンパイルする必要がありますか?
- Apache を Ubuntu にインストールする必要がありますか? それともサービスが既に有効になっていますか?
- どの特定のディレクトリに、WS コンパイルから生成されたコードを配置する必要がありますか ("CGI" だと思います)。
私は、gSOAP と「Web サービスの世界」全体、特に Ubuntu に関してはまったくの初心者です...
事前にどうもありがとうございました!
qt - Win7でgsoapとQt4.6を使用してサンプルアプリケーションをコンパイルする
gsoapのWebサイトで説明されているcalcの例をコンパイルしようとしていますが、成功しません。これが私の.proファイルの外観です。
アプリケーションをコンパイルすると、93個の未定義の参照が取得されます。以下はそれらのいくつかです
ネットワークライブラリが不足しているようです。誰かが私がこの例をコンパイルするのを手伝ってくれませんか。
ありがとう。
gsoap - gsoapを理解しようとしています
gsoapを使用して最初のWebサービスクライアントを作成しています。gsoapで提供されているcalcの例を実行することができました。
現在、WCFWebサービスからStringGetData()関数にアクセスしようとしています。wsdl2hとsoapcpp2の手順を実行し、.hファイルを生成しました。xxxxproxy.hでは、GetDataのプロトタイプは次のとおりです。
ありがとう。
multithreading - マルチスレッド gSOAP サービス
スタブ/スケルトン コンパイラがスレッド化されたサービスを生成する方法はありますか (つまり、要求ごとにスレッドを生成するか、スレッド プーリングによって)、または手動で soap_copy()、pthread_create() を追加する必要がありますか?
FAQ とユーザー ガイド 7.2.4 によると、gSOAP はスレッド セーフであり、マルチスレッド サービスをサポートしています。ただし、soapcpp2 -i フラグを使用すると、最終的には
ヒントはありますか?
c - gSoap-サービス呼び出しはSOAP_OKで返されますが、構造体は初期化されていません
これは、ヌルポインタの問題の逆参照です-ANSICドメインとgSoapドメインの両方で:
私は次のパブリックWSDLを使用しています:
そしてsoapUIを使用してその動作をテストしました。
wsdl2hおよびsoapcpp2ユーティリティを使用して、クライアント側のみのANSICバインディングを作成しました。
問題:
以前のgsoapプロジェクトでは、クライアントのsoap_call関数(5番目の引数)の結果構造には、次のようなもの以外の初期化は必要ありませんでした。
このプロジェクトまで、これは常に十分でした。
クライアントsoap_callは次のようになります。
pIn
このプロジェクトでは、「us」や「nz」などchar *
の2文字のIANAコードが入力されたとして定義されます。pOut
この特定の呼び出しの戻り構造は、次のような形になっています。
このns1__CountryData
ような形で:
したがって、アプリケーションからのこの関数の呼び出しは、次のように設定されます。
エラーは、nullポインタpO->countryinfo
の間接参照として発生します
GetCountryInfoはここで定義されます:
同様の出力構造形状を使用する他のgSoap
プロジェクト(つまり、char *を含む構造を含む構造)は、上記で示したもの以外で初期化すると、完全に入力された結果を返しました。
何か案は?詳細をお知らせいただければお知らせください。ありがとう。