การแก้ปัญหาข้อผิดพลาดในการทำให้นโยบาย XML เป็น JSON ใช้งานได้

คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่ เอกสารประกอบเกี่ยวกับ Apigee X.
ข้อมูล

EitherOptionOrFormat

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

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 เป็น JSON การทำให้พร็อกซี API ใช้งานได้จะล้มเหลว

ต้องระบุ <Options> หากไม่ใช้ <Format>

ใช้กลุ่มองค์ประกอบ <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 เป็น JSON มีองค์ประกอบที่ <Options> หรือ <Format> ที่ประกาศในนโยบาย

ตัวอย่างที่ 1:

<?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>

ตัวอย่างที่ 2:

<?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>

UnknownFormat

ข้อความแสดงข้อผิดพลาด

การทำให้พร็อกซี API ใช้งานได้ผ่าน Edge UI หรือ Edge Management API จะล้มเหลวโดยมีข้อความแสดงข้อผิดพลาดต่อไปนี้

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 ที่ล้มเหลวตรงกับค่าที่ระบุในข้อความแสดงข้อผิดพลาด (ขั้นตอนที่ 1 ด้านบน) ตัวอย่างเช่น นโยบายต่อไปนี้ระบุรูปแบบเป็น 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 ใช้งานได้จึงล้มเหลวโดยมีข้อผิดพลาดดังนี้

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

ความละเอียด

ตรวจสอบว่ารูปแบบที่ระบุในองค์ประกอบ <Format> ของนโยบาย XML เป็น 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>