XML to JSON 정책 배포 오류 문제 해결

Apigee Edge 문서입니다.
Apigee X 문서로 이동
정보

EitherOptionOrFormat

오류 메시지

다음 오류 메시지와 함께 Edge UI 또는 Edge 관리 API를 통한 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 to JSON 정책에 선언되지 않으면 API 프록시 배포에 실패합니다.

<Format>을 사용하지 않는 경우 <Options>이 필요합니다.

<Format> 요소 또는 <Options> 요소 그룹을 사용하세요. <Format><Options>을 둘 다 사용할 수는 없습니다. 사전 정의된 형식에는 xml.com, yahoo, google, badgerFish가 있습니다.

진단

  1. 실패가 발생한 특정 API 프록시에서 모든 XML to JSON 정책을 조사합니다. <Options> 또는 <Format> 요소가 선언되지 않은 XML to JSON 정책이 있는 경우 그것이 오류의 원인입니다.

    예를 들어 다음 정책에는 선언된 요소가 없습니다.

    <?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 to JSON 정책의 XML에 <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

오류 메시지

다음 오류 메시지와 함께 Edge UI 또는 Edge 관리 API를 통한 API 프록시의 배포가 실패합니다.

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

오류 예시

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

예시 스크린샷

원인

XML to JSON 정책의 <Format> 요소에 알 수 없는 형식이 정의되어 있으면 API 프록시 배포에 실패합니다.

사전 정의된 형식에는 xml.com, yahoo, google, badgerFish가 있습니다.

진단

  1. 오류가 발생했고 알 수 없는 형식의 XML to JSON 정책을 식별합니다. 이 정보는 오류 메시지에서 확인할 수 있습니다. 예를 들어 다음 오류에서 정책 이름은 WithFormat이고 알 수 없는 형식은 google.com입니다.

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. 실패한 XML to 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 to JSON 정책 예시에서 형식은 google.com이며 유효하지 않습니다. 따라서 API 프록시 배포에 실패하고 오류가 발생합니다.

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

해결 방법

XML to JSON으로 정책의 <Format> 요소에 지정된 형식이 올바른지 확인합니다. 예를 들면 다음과 같습니다.

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