Khắc phục sự cố về lỗi triển khai chính sách XML sang JSON

Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến tài liệu về Apigee X.
thông tin

EitherOptionOrFormat

Thông báo lỗi

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge với thông báo lỗi sau:

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

Lỗi ví dụ

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu một trong các phần tử <Options> hoặc <Format> không được khai báo trong Chính sách XML sang JSON thì sẽ không triển khai được proxy API.

Bạn phải nhập <Options> nếu không dùng <Format>.

Hãy sử dụng phần tử <Format> hoặc nhóm phần tử <Options>. Bạn không được sử dụng cả <Format><Options>. Các định dạng được xác định trước bao gồm: xml.com, yahoo, googlebadgerFish.

Chẩn đoán

  1. Kiểm tra tất cả các chính sách XML sang JSON trong proxy API cụ thể nơi xảy ra lỗi. Nếu có bất kỳ chính sách XML đối với JSON nào mà trong đó một trong hai phần tử <Options> hoặc <Format> không được khai báo, thì đó là nguyên nhân gây ra lỗi.

    Ví dụ: chính sách sau đây chưa khai báo bất kỳ thành phần nào trong số các thành phần sau:

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

Độ phân giải

Hãy đảm bảo rằng XML của chính sách XML sang JSON có một trong các phần tử <Options> hoặc <Format> được khai báo trong chính sách.

Ví dụ 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>

Ví dụ 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

Thông báo lỗi

Không triển khai được proxy API thông qua giao diện người dùng Edge hoặc API quản lý Edge với thông báo lỗi sau:

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

Lỗi ví dụ

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

Ảnh chụp màn hình mẫu

Nguyên nhân

Nếu phần tử <Format> trong chính sách XML sang JSON có định dạng không xác định, thì sẽ không triển khai được proxy API.

Các định dạng được xác định trước bao gồm: xml.com, yahoo, googlebadgerFish.

Chẩn đoán

  1. Xác định chính sách XML sang JSON nơi xảy ra lỗi và có định dạng không xác định. Bạn có thể tìm thấy thông tin này trong thông báo lỗi. Ví dụ: trong lỗi sau, tên chính sách là WithFormat và định dạng không xác định là google.com:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Xác minh rằng định dạng không xác định được chỉ định trong chính sách XML sang JSON không thành công khớp với giá trị được xác định trong thông báo lỗi (bước #1 ở trên). Ví dụ: Chính sách sau đây chỉ định định dạng là google.com, khớp với nội dung trong thông báo lỗi:

    <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. Nếu Định dạng được chỉ định không thuộc một trong các định dạng được xác định trước xml.com, yahoo, google hoặc badgerFish, thì đó là nguyên nhân gây ra lỗi.

    Trong ví dụ về Chính sách XML sang JSON được trình bày ở trên, định dạng là google.com không hợp lệ. Do đó, quá trình triển khai Proxy API sẽ không thành công kèm theo lỗi:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Độ phân giải

Đảm bảo rằng định dạng được chỉ định trong phần tử <Format> của chính sách XML sang JSON là hợp lệ. Ví dụ:

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