عیب یابی خطای استقرار خط مشی XML به JSON

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

هر دو گزینه یا قالب

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

Error Saving Revision [revision_number]
XMLToJSON[{0}]: Either Options or Format must be specified.

خطای مثال

Error Saving Revision 1
XMLToJSON[{0}]: Either Options or Format must be specified.

مثال اسکرین شات

علت

اگر یکی از عناصر <Options> یا <Format> در سیاست XML to JSON اعلام نشده باشد، پیاده‌سازی پروکسی API با شکست مواجه می‌شود.

اگر <Format> استفاده نشود، <Options> الزامی است.

از عنصر <Format> یا گروه عناصر <Options> استفاده کنید. نمی‌توانید از هر دو <Format> و <Options> استفاده کنید. قالب‌های از پیش تعریف شده عبارتند از: xml.com ، yahoo ، google و badgerFish .

تشخیص

  1. تمام سیاست‌های تبدیل XML به JSON را در پروکسی API خاصی که در آن خطا رخ داده است، بررسی کنید. اگر سیاست XML به JSON وجود دارد که در آن هر یک از عناصر <Options> یا <Format> تعریف نشده است، پس علت خطا همین است.

    برای مثال، سیاست زیر هیچ یک از عناصر اعلام شده را ندارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
        <DisplayName>XMLToJSON</DisplayName>
        <Properties/>
        <OutputVariable>response</OutputVariable>
        <Source>response</Source>
    </XMLToJSON>
    

وضوح تصویر

مطمئن شوید که XML مربوط به سیاست XML to JSON یکی از عناصر <Options> یا <Format> که در سیاست اعلام شده است را داشته باشد.

مثال ۱:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
    <DisplayName>XMLToJSON</DisplayName>
    <Properties/>
    <Format>google</Format>
    <OutputVariable>response</OutputVariable>
    <Source>response</Source>
</XMLToJSON>

مثال ۲:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
    <DisplayName>XMLToJSON</DisplayName>
    <Properties/>
    <Options>
        <RecognizeNumber>true</RecognizeNumber>
        <RecognizeBoolean>true</RecognizeBoolean>
        <RecognizeNull>true</RecognizeNull>
    </Options>
    <OutputVariable>response</OutputVariable>
    <Source>response</Source>
</XMLToJSON>

قالب ناشناخته

پیام خطا

استقرار پروکسی API از طریق رابط کاربری Edge یا رابط مدیریت Edge با این پیام خطا مواجه می‌شود:

Error Saving Revision [revision_number]
XMLToJSON[policy_name]: Unknown Format [unknown_format].

خطای مثال

Error Saving Revision 1
XMLToJSON[WithFormat]: Unknown Format google.com.

مثال اسکرین شات

علت

اگر عنصر <Format> در خط‌مشی XML به JSON دارای فرمت ناشناخته‌ای باشد، پیاده‌سازی پروکسی API با شکست مواجه می‌شود.

قالب‌های از پیش تعریف‌شده عبارتند از: xml.com ، yahoo ، google و badgerFish .

تشخیص

  1. سیاست XML به JSON که خطا در آن رخ داده و فرمت ناشناخته را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام سیاست WithFormat و فرمت ناشناخته google.com است:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. تأیید کنید که قالب ناشناخته مشخص شده در خط‌مشی شکست‌خورده تبدیل XML به JSON با مقدار شناسایی‌شده در پیام خطا (مرحله ۱ در بالا) مطابقت دارد. برای مثال، خط‌مشی زیر قالب google.com را مشخص می‌کند که با آنچه در پیام خطا آمده است مطابقت دارد:

    <XMLToJSON async="false" continueOnError="false" enabled="true" name="WithFormat">
      <DisplayName>WithFormat</DisplayName>
      <Properties/>
      <Format>google.com</Format>
      <OutputVariable>response</OutputVariable>
      <Source>response</Source>
    </XMLToJSON>
    
  3. اگر فرمت مشخص شده یکی از فرمت‌های از پیش تعریف شده xml.com ، yahoo ، google یا badgerFish نباشد، علت خطا همین است.

    در مثال مربوط به سیاست تبدیل XML به JSON که در بالا نشان داده شده است، فرمت google.com است که نامعتبر است. بنابراین، پیاده‌سازی API Proxy با خطای زیر با شکست مواجه می‌شود:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

وضوح تصویر

مطمئن شوید که فرمت مشخص شده در عنصر <Format> از سیاست XML to JSON معتبر است. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="WithFormat">
  <DisplayName>WithFormat</DisplayName>
  <Properties/>
  <Format>google</Format>
  <OutputVariable>response</OutputVariable>
  <Source>response</Source>
</XMLToJSON>