2

Force.com から Web サービスを呼び出すと、次のようになります。

System.CalloutException: Web サービスの呼び出しに失敗しました: 予期しない要素です。パーサーは要素 'http://schemas.xmlsoap.org/soap/envelope/:Envelope' を予期していましたが、':HTML' を見つけました

相手側のネットワーク担当者は、Salesforce がサーバーから取得している完全な応答を確認するよう求めています。

それを達成する方法はありますか?匿名実行からデバッグ レベル 'Finest' で実行しようとしましたが、詳細のない同じ小さなメッセージが表示されます。

4

4 に答える 4

1

Apex には、SOAP API よりも下位層として機能する HttpRequest クラスが含まれていることを忘れないでください。ハードコーディングされた XML 要求をサーバーに送信し、HttpResponse をダンプして確認できるようにするテスト メソッドを作成できるはずです。

于 2012-07-18T23:05:50.677 に答える
1

表示されるメッセージは、Saleforce が応答を解析しようとしてエラーが生成され、残念ながらログに記録されていないためです。

SOAP メッセージ応答の代わりに HTML ページを取得しているため、解析エラーが発生しています。これは通常、ファイアウォールの背後で保護されているサービスにアクセスしているときに発生します。つまり、コンピュータで閲覧しているときにサービスを表示できる場合がありますが、Salesforce はファイアウォールの外側にあるため、Salesforce からサービスへの通信はブロックされることに注意してください。

これに対処する方法はいくつかありますが、Salesforce のこの wiki トピックで最も適切に説明されているオプションについて説明します

上記はアウトバウンド メッセージングに固有のものですが、基本的に技術的な問題は同じです。

于 2012-07-12T16:31:54.393 に答える
0

問題は、Force.com が実際には単なる HTML である SOAP 応答を解析しようとしていることです。これは、エラーがサーバー側で発生し、適切にフォーマットされた SOAP 応答を介して例外レポートを送り返すのではなく、応答がブラウザーに表示されることを意図している場合に発生することがあります。

利用可能な SOAP 応答が返されない理由がわからない場合は、 (Force.com 以外の)他のツールを使用して、ブラウザから同じ Web サービス呼び出しを行い、HTML が実際に何を示しているかを確認できます。戻る。

于 2012-07-12T16:33:00.510 に答える