SOAP - Kesalahan

Jika terjadi kesalahan selama pemrosesan, respons ke pesan SOAP adalah elemen kesalahan SOAP dalam tubuh pesan, dan kesalahan dikembalikan ke pengirim pesan SOAP.

Mekanisme kesalahan SOAP mengembalikan informasi spesifik tentang kesalahan, termasuk kode yang telah ditentukan, deskripsi, dan alamat prosesor SOAP yang menghasilkan kesalahan.

Poin yang Perlu Diperhatikan

  • Pesan SOAP hanya dapat membawa satu blok kesalahan.

  • Kesalahan adalah bagian opsional dari pesan SOAP.

  • Untuk pengikatan HTTP, respons yang berhasil ditautkan ke rentang kode status 200 hingga 299.

  • SOAP Fault ditautkan ke rentang kode status 500 hingga 599.

Sub-elemen Fault

Kesalahan SOAP memiliki sub elemen berikut -

Sr Tidak Sub-elemen & Deskripsi
1

<faultCode>

Ini adalah kode teks yang digunakan untuk menunjukkan kelas kesalahan. Lihat Tabel berikutnya untuk daftar kode kesalahan yang telah ditentukan sebelumnya.

2

<faultString>

Ini adalah pesan teks yang menjelaskan kesalahan tersebut.

3

<faultActor>

Ini adalah string teks yang menunjukkan siapa yang menyebabkan kesalahan. Berguna jika pesan SOAP berjalan melalui beberapa node di jalur pesan SOAP, dan klien perlu mengetahui node mana yang menyebabkan kesalahan. Node yang tidak bertindak sebagai tujuan akhir harus menyertakan elemen faultActor .

4

<detail>

Ini adalah elemen yang digunakan untuk membawa pesan kesalahan khusus aplikasi. Elemen detail dapat berisi elemen anak yang disebut entri detail.

Kode Kesalahan SOAP

Nilai-nilai faultcode didefinisikan di bawah harus digunakan dalam faultcode elemen sementara menggambarkan kesalahan.

Sr Tidak Kesalahan & Deskripsi
1

SOAP-ENV:VersionMismatch

Menemukan namespace yang tidak valid untuk elemen SOAP Envelope.

2

SOAP-ENV:MustUnderstand

Elemen turunan langsung dari elemen Header, dengan atribut mustUnderstand disetel ke "1", tidak dipahami.

3

SOAP-ENV:Client

Format pesan salah atau berisi informasi yang salah.

4

SOAP-ENV:Server

Ada masalah dengan server, jadi pesan tidak dapat dilanjutkan.

Contoh Kesalahan SOAP

Kode berikut adalah contoh Kesalahan. Klien telah meminta metode bernama ValidateCreditCard , tetapi layanan tidak mendukung metode tersebut. Ini mewakili kesalahan permintaan klien, dan server mengembalikan respons SOAP berikut -

<?xml version = '1.0' encoding = 'UTF-8'?>
<SOAP-ENV:Envelope
   xmlns:SOAP-ENV = "http://schemas.xmlsoap.org/soap/envelope/"
   xmlns:xsi = "http://www.w3.org/1999/XMLSchema-instance"
   xmlns:xsd = "http://www.w3.org/1999/XMLSchema">

   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode xsi:type = "xsd:string">SOAP-ENV:Client</faultcode>
         <faultstring xsi:type = "xsd:string">
            Failed to locate method (ValidateCreditCard) in class (examplesCreditCard) at
               /usr/local/ActivePerl-5.6/lib/site_perl/5.6.0/SOAP/Lite.pm line 1555.
         </faultstring>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>