Loading

Web サービスコールアウトの「Failed to get next element (次の要素の取得に失敗しました)」エラー

公開日: May 18, 2026
説明
※この記事は英語版を翻訳しており、一部機械翻訳を含むため内容は後日更新される可能性があります。最新の内容は英語版を参照してください。表示言語は画面右下の言語名から切り替えられます。

Web サービスのコールアウトが「System.CalloutException:Web service callout failed: Failed to get next element. (Web サービスのコールアウトに失敗しました: 次の要素の取得に失敗しました。)」エラーにより失敗する場合があります。 
解決策

外部 Web サービスから応答を受信すると、Salesforce はその応答を解析して、提供された Web サービスの WSDL を使用して生成された Apex クラスにシリアライズしようとします。応答の本文は有効な XML ドキュメントであることが想定されています。パーサーは、<soap:Envelope> 要素が Prolog (存在する場合) の後の応答に含まれる最初の XML ノードであると想定するためです。しかし、<soap:Envelope> 要素の前に XML 以外の要素がある場合、パーサーは例外「Failed to get next element.」をスローします。

上記のシナリオでは、応答のフォーマットはマルチパート応答のフォーマットです。最初の行に「--id」、最後の行に「--id--」があり、これらによって、このマルチパート応答の最初かつ唯一の部分が区切られていることがわかります。この応答を解析しようとすると、パーサーは「--id」に遭遇します。そして、この非 XML 要素や後続の行のレスポンスヘッダーの存在を想定していないため失敗します。つまり、現時点ではパーサーはマルチパート応答に対応していないため、マルチパート応答を送信しないように Web サービスを修正することが推奨されます。

11:12:06.213 (1213388226)|CALLOUT_RESPONSE|[111]|
--uuid:c71daf0b-eb0d-4aad-a8c3-6890e780e569
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml";
Content-Transfer-Encoding: binary
Content-ID: <root.message@cxf.apache.org>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>...</soap:Body></soap:Envelope>
--uuid:c71daf0b-eb0d-4aad-a8c3-6890e780e569--
11:12:06.213 (1213814277)|EXCEPTION_THROWN|[111]|System.CalloutException:Web service callout failed: Failed to get next element
ナレッジ記事番号

000387950

 
読み込み中
Salesforce Help | Article