問題タブ [soap]
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.
java - Java 以外のクライアントで名前空間 java: への参照を含む WSDL を解釈するにはどうすればよいですか?
Apache Axis で実行されている SOAP Web サービスに対して統合しようとしています。WSDL は、次のような URI で名前空間を指定します。
クライアント側では PHP を使用しているため、名前空間xmlns:stns
は意味がありません。この名前空間に対応していると思われる Java クラス ファイル (およびそのソース) がいくつかあります。これを意味のある方法で処理するにはどうすればよいですか?
.net - DateTime が SOAP xsd:dateTime 要素にゾーン オフセットを含めないようにするにはどうすればよいですか?
私はいくつかのWSDLにこれを持っています:
その結果、SOAP エンベロープに次のテキストが表示されます。
ミリ秒とゾーン オフセットがあるのは一部の時間だけです。この例では 37 分 54 秒の範囲を取得しようとしているため、頭痛の種になりますが、オフセットのために 4 時間 37 分 54.65625 秒になってしまいます。これは DateTime の何らかの丸め誤差ですか? これを防ぐにはどうすればよいですか?
asp.net - クラシック ASP での SOAP の活用
明確化: これは、ページに対するユーザー エージェントの呼び出しに関するものではなく、ASP.NET を呼び出す従来の ASP に関するものです。
Classic ASP から ASP.NET への移行の途中にあるアプリケーションがあります。50 万行のコードがあるため、すべてを一度に完全に書き直すことは、まったく妥当ではありません。または、Classic ASP ページの大部分が問題なく動作することを考えると、率直に言って賢明ではありません。「かっこいい」という理由だけでなく、ページや機能が改訂のために出てきたときに翻訳します。
ページの約半分が変換されたので、重要な機能の一部を ASP.NET に移行しました。この機能の従来のバージョンを維持する代わりに (つまり、1 つではなく 2 つの場所を維持する必要があります)、SOAP を使用してこの機能を公開する方向に進んでいます。
ええと...そうではありません。代わりに、以前は「貧乏人の SOAP」と呼んでいたものを使用していますが、今日では REST と呼ぶのが流行になっています。ServerXMLHTTP を使用して宛先ページに接続し、XML のボールをまとめて ASP.NET 側に POST しています。その結果、いくつかの XML をまとめ、XPATH を使用してそれを変数に分解しました。
これらすべてが驚くほどうまく機能します。ただし、組み込みの ASP.NET SOAP 機能を検討しています。これにより、クロス プラットフォームの呼び出し用にランディング ページをカスタムで作成する必要がなくなるように思われます...減価償却された SOAP ツールキット。
質問は; この種のセットアップの経験がある人はいますか? もしそうなら、カスタム REST ページや Soap Toolkit よりも良い方法はありますか? より多くの ASP.NET 機能をより迅速に公開できれば、移行に役立つと思いますが、Soap Toolkit のようなレガシー テクノロジに不必要に取り込まれたくはありません。
c++ - ISAPI webapp と統合する SOAP ライブラリの選択
私が働いている会社には、ISAPI 拡張機能 (フィルターではない) として C++ で書かれた大規模な webapp があります。現在、SOAP インターフェイスを備えたいくつかのサードパーティ ツールと統合するために、システムを強化しています。独自に開発するよりも、SOAP ライブラリを使用した方がよいと思います。理想的には、それは無料でオープン ソースですが、クローズド ソースの商用ソフトウェアと互換性のあるライセンスが必要です。また、SOAP メッセージの着信と発信の両方で SSL をサポートする必要があります。
私が持っている最大の懸念の 1 つは、私が調べたすべての SOAP ライブラリに、スタンドアロン サーバーとサーバー モジュール (Apache モジュールまたは ISAPI フィルターのいずれか) という 2 つの操作モードがあるように見えることです。明らかに、スタンドアロン サーバーは使用できません。モジュールとして実行されている場合、それは私のアプリの一部ではないように思えます-残りのコードにアクセスできないため、データ構造などを共有できません. それは正しい仮定ですか? アプリによって処理される各 HTTP リクエストは、個別のスレッド (独自のスレッド プールを管理します) によって処理されますが、これらのスレッド間で共有される多くの永続データがあります。私が探している統合のタイプは、リクエスト URL を見て、SOAP サービスにアクセスしようとしていることを確認し、soapService のような関数を呼び出すコードをアプリに追加することだと思います。handleRequest()。この種の統合を提供するものは何も知りません。SOAP ハンドラー関数でメイン アプリのデータ構造を利用できる必要があります。
受信する SOAP リクエストを処理するだけでなく、それらを生成します (サードパーティとの双方向通信)。ほぼすべての SOAP ライブラリがその目的を果たしていると思いますよね?
これが可能な SOAP ライブラリを提案したり、別のパラダイムの使用方法を提案したりできる人はいますか? 私は既に Apache Axis2、gSOAP、AlchemySOAP を見てきましたが、おそらくこれらには見落としていた機能がいくつかあります。ありがとう。
c# - SOAP 応答にアクセスするにはどうすればよいですか
(ここで明確化/詳細が必要な場合はお知らせください。)
SOAP を使用してサードパーティの Web サービスとやり取りするアプリケーション (C#、2.* フレームワーク) があります。提供された WSDL に対して thinktecture の WSCF アドインを使用して、クライアント側の実装を作成しました。私の手に負えない理由により、SOAP メッセージ交換はセキュリティのために WSE2.0 を使用します (Thinctecture の実装を変更して、WSE2.0 参照を含める必要がありました)。「通常の」データ パッケージに加えて、保存されている X509 証明書と、別の Web サービスへの以前の呼び出しからのバイナリ セキュリティ トークンを添付します。ある種の SSL 暗号化を使用しています - 詳細はわかりません。
必要なすべてのシリアライゼーション/デシリアライゼーションは Web サービス クライアントに含まれています。つまり、クライアントを呼び出した後に制御が返されたときに、SOAP 応答に含まれる XML 文字列全体を利用できず、デシリアライズされたコンポーネントだけを使用できます。誤解しないでほしいのですが、自分でやる必要がないということなので、これは良いことだと思います。
ただし、保存/アーカイブする価値のあるものを得るには、ルート要素でデータを再シリアル化する必要があります。私の結果はSOAP応答にあったので、これはリソースの無駄のようです。
ここで私の質問: ストレージ/アーカイブのためにすべてを再シリアル化する必要がないように、SOAP 応答の「クリア」バージョンにアクセスするにはどうすればよいですか?
編集 - 私のアプリケーションは、WebsphereMQ クライアント トリガー モニターによってトリガーされる、ネットワーク サービスとして実行される「フォームレス」Windows アプリです。ASP.NET ソリューションは適用されないと思います。
編集 - これまでのところ、私のアプリが ASP.NET であるかどうかは問題ではないというコンセンサスがあるため、CodeMelt (および Chris の拡張) のソリューションを試してみます。
c++ - ATL C++ クライアントから Axis2 Web サービスを呼び出す
Tomcat5.5 で Axis2 を使用して発行された単純な POJO Web サービスがあり、ATL C++ クライアントでそれを使用しようとすると失敗します。C# クライアントで同じことをするとうまくいきます。問題は、ATL クライアントが次のような SOAP 本体を送信することです。
真ん中の無効な要素に注目してください。C#はヘッダーを送信するため、UTF-8と関係があると思われます
ATL クライアントはそうではありません。また、ATL SOAP 内部の一部を調べると、構造体に szName と szwName の 2 つのメンバーがあることに気付きました。1 つ目は空で要素を生成し、2 つ目は testResponse という有効な (?) 名前を持っています (呼び出しているメソッドは「test」と呼ばれます)。
ここからどこへ行くべきかアドバイスが必要ですか?
詳細: ATL クライアントからの完全なメッセージ:
Axis2 からの応答:
ああ、これが C# クライアントからの適切な要求です。
C# の場合、soap:body は空白です。
http - HTTP POST の使用時に URL でパラメーターを渡す
POST メソッドを使用する場合、URL (疑問符の後) を介して Web ページにパラメーターを渡すことはできますか? 私の会社のwebappが頻繁にそれを行うので、それが機能することは知っていますが、実際に標準でサポートされているかどうか、またはこの動作に依存できるかどうかはわかりません。疑問符の後にパラメーターを使用して、それが SOAP 要求であり、通常の HTTP 要求ではないことを示す SOAP 要求ハンドラーの実装を検討しています。この理由は、webapp が IIS 拡張機能であるため、すべてが同じ URL (例: example.com/myisapi.dll?command) を介してアクセスされるため、SOAP 要求を処理するには、「コマンド」パラメータ。SOAP 用の汎用コマンドが 1 つあります。
基本的に、Apache Axis2/C ライブラリを webapp に統合しようとしています。これは、webapp に HTTP 要求を処理させ、受信 SOAP XML を Axis2 に渡して、それが SOAP 要求である場合に処理させます。さまざまなコンポーネントに関する限り、投稿先の URL は単なる任意の URL であるため、直観的には、これが機能しない理由はわかりません... に特別な意味を与えるのはサーバーですクエスチョンマークの後の部分。
あなたが提供できる助け/洞察に感謝します。
javascript - SOAP - Google マップと Javascript - Web サービスへの接続
JavaScript を使用して asmx Web サービスに接続する必要があります。Web サービスは SOAP 応答を受け入れて返します。javascriptを使用してWebサービスに接続する方法のサンプルコードを探しています。緯度と経度の詳細を返します。これを使用して、Google マップにマーカーをプロットします。クロスドメインスクリプティングの問題もあります...
石鹸応答の例を提供する必要がありますか?
ありがとう。
python - Python と SOAPpy を使用して WSDL を生成する
まず最初に、私は Web サービスの初心者であることを認めますが、HTML と基本的な Web の機能には精通しています。Python を使用して、MySQL データベース内のストアド プロシージャを呼び出し、単純に BIGINT 値を返す簡単な Web サービスを作成しました。この値を Web サービスで返し、Web 開発者に提供できる WSDL を生成したいと考えています。ストアド プロシージャは 1 つの値しか返さないことを付け加えておきます。
コード例を次に示します。
私は Web 関係者に提供できる WSDL を生成したいと考えています。また、SOAPpy で WSDL を生成するだけでよいのではないかと考えています。これは可能ですか?
.net - PHPを使用したWCFoverHTTPSは、「メソッドが許可されていません」という例外をスローします
常にHTTPS経由で使用することを目的とした.NETWCFサービスを作成しました。最初にサービススケルトンを作成してHTTPで実行したときは、正常に機能していました。PHP5を使用して、組み込みのSOAP関数との相互運用性をテストしました。ただし、HTTPSに切り替えた後、PHPから関数を呼び出そうとすると、「MethodNotAllowed」というメッセージと「http」の障害コードで障害が返されます。ただし、メソッドのリストを取得することはできます。メソッド「Test」を呼び出すとエラーが発生します。
WCFの構成は次のとおりです。
そして、これがPHPがそれをどのように呼んでいるかです:
テストに自己署名SSL証明書を使用していますが、PHPに信頼できる証明書が必要だとは思いません。
私は何が間違っているのですか?