دوستان و همراهان عزیز وب سایت آموزشی پی وی لرن، با آموزش وب سرویس soap در خدمتتون خواهیم بود. بررسی Fault در soap را در این بخش از آموزش، مورد بررسی قرار دادیم. با ما همراه باشید.
اگر هنگام پردازش خطایی رخ دهد ، پاسخ به پیام SOAP یک عنصر فالت SOAP در body پیام است و این fault به فرستنده پیام SOAP باز می گردد.
مکانیسم فالت SOAP اطلاعات خاصی را در مورد خطا از جمله کد از پیش تعریف شده ، توضیحات و آدرس پردازنده SOAP که خطا را ایجاد می کند ، برمی گرداند.
SOAP Fault عناصر فرعی زیر را دارد.
ردیف | عناصر فرعی و شرح |
---|---|
۱ | <faultCode> این یک کد متنی است که برای نشان دادن یک کلاس از خطاها استفاده می شود. برای فهرست کدهای fault از پیش تعریف شده به جدول بعدی مراجعه کنید. |
۲ | <faultString> این یک پیام متنی است که خطا را توضیح می دهد. |
۳ | <faultActor> این یک رشته متن است که نشان می دهد چه چیزی باعث این fault شده است. اگر پیام SOAP در مسیر پیام SOAP از چندین گره عبور کند ، مفید است و مشتری باید بداند کدام گره باعث ایجاد خطا شده است. گره ای که به عنوان مقصد نهایی عمل نمی کند باید شامل یک عنصر faultAector باشد. |
۴ | <detail> این عنصری است که برای انتقال پیام های خطای خاص برنامه کاربرد دارد. عنصر detail می تواند شامل عناصر child به نام ورودی های جزئی باشد. |
مقادیر faultCode تعریف شده در زیر باید ضمن توصیف fault ها در عنصر faultcode استفاده شود.
ردیف | Error و شرح |
---|---|
۱ | SOAP-ENV:VersionMismatch یک namespace نامعتبر برای عنصر SOAP Envelope پیدا کرد. |
۲ | SOAP-ENV:MustUnderstand عنصر کودک فوری از عنصر Header ، با ویژگی “MustUnderstand” روی “۱” تنظیم شده بود ، درک نشده بود. |
۳ | SOAP-ENV:Client پیام نادرست شکل گرفته یا حاوی اطلاعات نادرست بوده است. |
۴ | SOAP-ENV:Server مشکلی در سرور وجود داشت ، بنابراین پیام نمی تواند ادامه یابد. |
کد زیر یک نمونه Fault است. مشتری متدی را به نام ValidateCreditCard درخواست کرده است ، اما این سرویس از چنین روشی پشتیبانی نمی کند. این نشان دهنده یک خطای درخواست مشتری است ، و سرور پاسخ SOAP زیر را برمی گرداند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <?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> |
بررسی Fault در soap را در این بخش از آموزش وب سرویس soap مورد بررسی قرار دادیم. در جلسه ی آینده Encoding را دنبال می نماییم. با وب سایت پی وی لرن همراه باشید.