XML - JSON politikası çalışma zamanı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

SourceUnavailable

Hata kodu

steps.xml2json.SourceUnavailable

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Source [source_variable] is not available",
        "detail": {
            "errorcode": "steps.xmltojson.SourceUnavailable"
        }
    }
}

Örnek Hata Mesajı

{
    "fault": {
        "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available",
        "detail": {
            "errorcode": "steps.xml2json.SourceUnavailable"
        }
    }
}

Neden

Bu hata, XML'den JSON'a yönelik politikanın <Source> öğesinde belirtilen message veya dize değişkeni şunlardan biriyse ortaya çıkar:

  • kapsam dışında (politikanın yürütüldüğü belirli akışta kullanılamaz) veya
  • çözülemiyor (tanımlanmadı)

Örneğin, bu hata XML'den JSON'a olan politikanın istek akışında yürütülmesi gerekiyorsa ancak <Source> öğesi, istek akışında var olmayan response değişkenine ayarlanırsa ortaya çıkar.

Teşhis

  1. Hatanın oluştuğu XML'den JSON'a dönüştürme politikasını ve kullanılamayan değişkenin adını tanımlayın. Bu öğelerin ikisini de hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring politikasında politika adı Convert-XMLToJSON, değişken ise response'dir:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Source response is not available"
    
  2. Başarısız XML'den JSON'ye geçiş politikası XML'inde, <Source> öğesinde ayarlanan değişken adının, hata dizesinde (yukarıdaki 1. adım) tanımlanan değişken adıyla eşleştiğini doğrulayın. Örneğin, aşağıdaki XML'den JSON'a geçiş politikası, <Source> öğesinde response adlı bir değişkeni belirtir ve bu değişken, faultstring öğesinin içindekilerle eşleşir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>response</OutputVariable>
        <Source>response</Source>
    </XMLToJSON>
    
  3. <Source> öğesinde kullanılan değişkenin tanımlanmış olup olmadığını ve XML'den JSON'a olan politikanın yürütülmekte olduğu akışta kullanılabilir olup olmadığını belirleyin.

  4. Değişken şunlardan biriyse:

    • kapsam dışında (politikanın yürütüldüğü belirli akışta kullanılamaz) veya
    • çözülemiyor (tanımlanmadı)

    hatanın nedeni budur.

    Örnek olarak, yukarıda gösterilen XML'den JSON'a geçiş politikasının istek akışında yürütülmesi gerektiğini varsayalım. response değişkeninin, XML'den JSON'a dönüştürme politikasının <Source> öğesinde kullanıldığını unutmayın. Yanıt değişkeni yalnızca yanıt akışında kullanılabilir.

    Yanıt değişkeni istek akışında bulunmadığı için şu hata kodunu alırsınız:

    steps.xml2json.SourceUnavailable
    

Çözünürlük

Başarısız XML'den JSON'a Geçiş politikasının <Source> öğesinde ayarlanan değişkenin tanımlandığından ve politikanın uygulandığı akışta mevcut olduğundan emin olun.

Yukarıda gösterilen örnek XML'den JSON'ye dönüştürme politikasını düzeltmek için <Source> öğesini, istek akışında bulunan request değişkenini kullanacak şekilde değiştirebilirsiniz:

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

ExecutionFailed

Hata kodu

steps.xml2json.ExecutionFailed

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Execution failed. reason: Premature end of document while parsing at line [line_number](possibly  around char [character_number])",
        "detail": {
            "errorcode": "steps.xml2json.ExecutionFailed"
        }
    }
}

Olası nedenler

Bu hatanın olası nedenleri şunlardır:

Neden Açıklama
Giriş yükü eksik Giriş yükü (XML) boş.
Geçersiz veya Yanlış Biçimlendirilmiş Giriş XML'den JSON politikasına geçirilen giriş (XML) geçersiz veya hatalı biçimlendirilmiş.

Neden: Giriş yükü eksik

XML'den JSON'a geçiş politikasında, <Source> öğesinde belirtilen değişkenin içeriği (yük) boşsa bu hata oluşur.

Örneğin, XML'den JSON'a geçiş politikasındaki <Source> öğesi request veya response değişkeni olarak ayarlanmışsa ve bir XML yükü içermesi gerekiyorsa bu hata yük boşsa ortaya çıkar.

Teşhis

  1. Hatanın oluştuğu XML'den JSON'a dönüştürme politikasını tanımlayın. Bu bilgileri, hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring politikasında politika adı Convert-XMLToJSON şeklindedir:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 1(possibly  around char 0)"
    
  2. Başarısız olan XML - JSON politika XML'indeki <Source> öğesini inceleyin ve belirtilen değişkeni belirleyin. Örneğin, aşağıdaki XML'den JSON'a geçiş politikasında <Source> öğesi istek olarak ayarlanmış:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Options>
            <RecognizeNumber>true</RecognizeNumber>
            <RecognizeBoolean>true</RecognizeBoolean>
            <RecognizeNull>true</RecognizeNull>
        </Options>
        <OutputVariable>request</OutputVariable>
        <Source>request</Source>
    </XMLToJSON>
    
  3. XMLToJSON politikasında <Source> öğesi için belirtilen değişkenin boş olup olmadığını kontrol edin. Boşsa hatanın nedeni budur.

    Yukarıda gösterilen örnek XML'den JSON'a geçiş politikasında, istemci tarafından gönderilen istek yükü (yani istek gövdesi) boştu.

    Örneğin:

    curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml"
    

    XML istek yükü boş olduğundan şu hata kodunu alırsınız:

    steps.xml2json.ExecutionFailed
    

    Bu hata, <Source> öğesi yanıta ayarlıyken ancak arka uç sunucu tarafından boş bir yük geçirildiğinde de ortaya çıkabilir.

Çözünürlük

<Source> öğesi aracılığıyla XML'den JSON politikasına XML'e iletilen giriş, geçerli bir XML yükü olduğundan ve boş olmadığından emin olun.

Örnek XML'den JSON'a geçiş politikasıyla ilgili sorunu düzeltmek için geçerli bir XML yükü iletin. Örneğin:

  1. Aşağıdaki içeriğe sahip city.xml adlı bir dosya oluşturun:

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <City>Bengaluru</City>
       <Name>Apigee</Name>
       <Pincode>560016</Pincode>
    </root>
    
  2. Aşağıdaki gibi bir cURL komutu kullanarak API çağrısını yapın:

    curl -v "http://<org>-<env>.apigee.net/v1/testxmltojson" -H "Content-Type: application/xml" -X POST -d @company.xml
    

Neden: Geçersiz veya Yanlış Biçimlendirilmiş Giriş

XML'den JSON'a geçiş politikası, geçersiz veya bozuk girişi ayrıştırırsa bu hatayı alırsınız.

Örneğin, XML'den JSON'a geçiş politikasına giriş olarak aşağıdaki geçersiz XML sağlanırsa:

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <City>Bengaluru</City>
   <Name>Apigee</Name>
   <Pincode>560016</Pincode>

şu hatayı alırsınız:

"faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"

Teşhis

  1. Hatanın oluştuğu XML'den JSON'a dönüştürme politikasını tanımlayın. Bu bilgileri, hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring politikasında politika adı Convert-XMLToJSON şeklindedir:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Execution failed. reason: Premature end of document while parsing at line 6(possibly  around char 0)"
    
  2. Başarısız olan XML'den JSON'a geçiş politikası XML'inde belirtilen <Source> öğesini inceleyin. Örneğin, aşağıdaki XML'den JSON'a geçiş politikasında <Source> öğesi request değişkenine ayarlanmıştır:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Options>
            <RecognizeNumber>true</RecognizeNumber>
            <RecognizeBoolean>true</RecognizeBoolean>
            <RecognizeNull>true</RecognizeNull>
        </Options>
        <OutputVariable>request</OutputVariable>
        <Source>request</Source>
    </XMLToJSON>
    
  3. XML'den JSON'a Politikası'ndaki <Source> öğesinde belirtilen girişin geçerli bir XML yükü olup olmadığını doğrulayın. Giriş geçersiz veya hatalıysa hatanın nedeni budur.

    Yukarıda gösterilen örnek XML'den JSON'a geçiş politikasında, city.xml dosyası aracılığıyla Değişkenleri Ayıklama politikasına aşağıdaki geçersiz XML geçirildi:

    <?xml version="1.0" encoding="UTF-8"?>
    <root>
       <City>Bengaluru</City>
       <Name>Apigee</Name>
       <Pincode>560016</Pincode>
    

    Aşağıda, isteğin nasıl iletildiğini gösteren örnek API çağrısı verilmiştir:

    curl -v "http://<org>-<env>.apigee.net/v1/testxmltpjson" -H "Content-Type: application/xml" -X POST -d @city.xml
    

    XML'de <root> öğesi için bir bitiş etiketi bulunmadığından API'ye iletilen XML yükü geçersiz. Bu durumda şu hata kodunu alırsınız:

    steps.xml2json.ExecutionFailed
    

    Bu hata, <Source> öğesi yanıt olarak ayarlandıysa ancak arka uç sunucusundan gelen XML yanıt yükü geçersiz veya bozuk olduğunda da ortaya çıkabilir.

Çözünürlük

<Source> öğesi aracılığıyla XML'den JSON politikasına geçirilen girişin geçerli olduğundan ve bozuk olmadığından emin olun.

Yukarıda açıklanan örnek XML to JSON politikasıyla ilgili sorunu düzeltmek için aşağıdaki şekilde geçerli bir XML yükü isteği iletin:

<?xml version="1.0" encoding="UTF-8"?>
<root>
   <City>Bengaluru</City>
   <Name>Apigee</Name>
   <Pincode>560016</Pincode>
</root>

OutputVariableIsNotAvailable

Hata kodu

steps.xml2json.OutputVariableIsNotAvailable

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: Output variable is not available.",
        "detail": {
            "errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
        }
    }
}

Örnek Hata Mesajı

{
    "fault": {
        "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available.",
        "detail": {
            "errorcode": "steps.xml2json.OutputVariableIsNotAvailable"
        }
    }
}

Neden

Bu hata, XML'den JSON'a Geçiş politikasının <Source> öğesinde belirtilen değişken dize türündeyse ve <OutputVariable> öğesi tanımlı değilse ortaya çıkar. <Source> öğesinde tanımlanan değişken string türünde olduğunda <OutputVariable> öğesi zorunludur.

Teşhis

  1. Hatanın oluştuğu XML'den JSON'a Geçiş Politikası'nı tanımlayın. Bunu, hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring politikasında politika adı Convert-XMLToJSON şeklindedir:

    "faultstring": "XMLToJSON[Convert-XMLToJSON]: Output variable is not available."
    
  2. Başarısız olan XML to JSON Politikası'nda <OutputVariable> eksik olup olmadığını doğrulayın.

    <OutputVariable> öğesi eksik olan JSON Politikası'na örnek bir XML'i burada bulabilirsiniz.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="Convert-XMLToJSON">
        <DisplayName>Convert-XMLToJSON</DisplayName>
        <Properties/>
        <Format>google</Format>
        <Source>TrackingNumber</Source>
    </XMLToJSON>
    
    
  3. <Source> öğesinde belirtilen değişken türünü belirleyin:

    1. Değişkenin ilk olarak tanımlandığı API Proxy paketinde kodu bulun.
    2. Öncelikle değişkenin tanımlandığı ve doldurulduğu politikayı belirledikten sonra, bu değişkenin türünü aşağıdaki şekilde belirlemeniz gerekir:
      1. Tür özelliğinin değerini kontrol edin (varsa).
      2. Tür özelliği mevcut değilse değişken bir dize olarak kabul edilir.
    3. Değişkenin türü string ise hatanın nedeni budur. Sık kullanılan değişkenler ve türleri hakkında daha fazla bilgiyi Değişkenler referansında bulabilirsiniz.

    Örneğin, yukarıdaki XML'den JSON'a geçiş politikasındaki TrackingNumber değişkenine bakın. Dize türündedir. Şimdi, aşağıda gösterildiği gibi TrackingNumber adlı bir değişkene değer ayarlamak için kullanılan bir Mesaj Ata politikasını ele alalım:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
        <DisplayName>Assign_TrackingNumber</DisplayName>
        <Properties/>
        <AssignVariable>
            <Name>TrackingNumber</Name>
            <Value><![CDATA[<Code>560075393539898</Code>]]></Value>
            <Ref/>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>
    

    <AssignVariable> aracılığıyla ayarlanan değişken türünün dize olduğunu unutmayın. Dolayısıyla TrackingNumber değişkeni dize türündedir.

    Şimdi, TrackingNumber değişkeninin XML To JSON politikasının <Source> öğesinde kullanıldığını unutmayın:

    <Source>TrackingNumber</Source>
    

    TrackingNumber dize türünde olduğundan ve <OutputVariable> politikasında eksik olduğundan şu hata kodunu alırsınız:

    steps.xml2json.OutputVariableIsNotAvailable
    

Çözünürlük

XMLToJSON Politikası'nın <Source> öğesinde belirtilen değişken dize türündeyse bu durumda <OutputVariable> öğesinin zorunlu olduğundan emin olun.

Yukarıda açıklanan XML To JSON Politikası'nı düzeltmek için <OutputVariable> öğesini aşağıda gösterildiği gibi ekleyin.

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

InCompatibleTypes

Hata kodu

steps.xml2json.InCompatibleTypes

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "XMLToJSON[policy_name]: String can not be assigned to message type.",
        "detail": {
            "errorcode": "steps.xml2json.InCompatibleTypes"
        }
    }
}

Örnek Hata Mesajı

{
    "fault": {
        "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type.",
        "detail": {
            "errorcode": "steps.xml2json.InCompatibleTypes"
        }
    }
}

Neden

Bu hata, <Source> öğesinde tanımlanan değişkenin türü ve <OutputVariable> öğesi aynı değilse ortaya çıkar. <Source> öğesi ve <OutputVariable> öğesinde yer alan değişkenlerin türünün eşleşmesi zorunludur.

The valid types are message and string.

Teşhis

  1. Hatanın oluştuğu XML'den JSON'a Geçiş Politikası'nı tanımlayın. Bunu, hata yanıtının faultstring öğesinde bulabilirsiniz. Örneğin, aşağıdaki faultstring politikasında politika adı XMLToJSON_CheckType şeklindedir:

    "faultstring": "XMLToJSON[XMLToJSON_CheckType]: String can not be assigned to message type."
    
  2. Başarısız olan XML To JSON Politikası'nda, <OutputVariable> politikasında belirtilen değerleri not edin.

    <OutputVariable> öğesi eksik olan örnek bir XMLToJSON politikasını burada bulabilirsiniz

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
        <DisplayName>XMLToJSON_CheckType</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>request</OutputVariable>
        <Source>TrackingNumber</Source>
    </XMLToJSON>
    
  3. <Source> ve <OutputVariable> öğelerinde belirtilen değişken türünü belirleyin:

    1. Önce bu değişkenlerin her birinin tanımlandığı API Proxy paketinin içindeki kodu bulun.
    2. Öncelikle değişkenin tanımlandığı ve doldurulduğu politikayı belirledikten sonra, bu değişkenin türünü aşağıdaki şekilde belirlemeniz gerekir:
      1. Tür özelliğinin değerini kontrol edin (varsa).
      2. Tür özelliği mevcut değilse değişken bir dize olarak kabul edilir.
    3. <Source> öğesinde belirtilen değişken türü string, ancak <OutputVariable> türü mesaj ise (veya tam tersi) hatanın nedeni budur. Sık kullanılan değişkenler ve türleri hakkında daha fazla bilgiyi Değişkenler referansında bulabilirsiniz.

    Örneğin, aşağıda gösterildiği gibi, TrackingNumber adlı bir değişkene değer belirlemek için kullanılan bir Mesaj Ata politikasını ele alalım:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
        <DisplayName>Assign_TrackingNumber</DisplayName>
        <Properties/>
        <AssignVariable>
            <Name>TrackingNumber</Name>
            <Value><![CDATA[<Code>560075393539898</Code>]]></Value>
            <Ref/>
        </AssignVariable>
        <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
        <AssignTo createNew="false" transport="http" type="request"/>
    </AssignMessage>
    

    <AssignVariable> aracılığıyla ayarlanan değişken türünün dize olduğunu unutmayın. Dolayısıyla TrackingNumber değişkeni dize türündedir.

    Şimdi, XMLToJSON politikasının <Source> öğesinde TrackingNumber değişkeninin kullanıldığını hatırlayın:

    <Source>TrackingNumber</Source>
    

    Benzer şekilde, request değişkeninin XML To JSON politikasının <OutputVariable> öğesinde kullanıldığını unutmayın:

    <OutputVariable>request</OutputVariable>
    

    TrackingNumber, response değişkeni message türündeyken string türünde olduğundan, bunlar uyumsuz türler olduğundan şu hata kodunu alırsınız:

    steps.xml2json.InCompatibleTypes
    

    Yukarıdaki hata, <Source> öğesindeki değişken message türündeyken <OutputVariable> öğesindeki değişken dize türünde olduğunda da ortaya çıkabilir.

Çözünürlük

<Source> öğesinde ve <OutputVariable> öğesinde tanımlanan değişken türünün her zaman aynı olduğundan emin olun. <Source> öğesi ve <OutputVariable> öğesinde yer alan değişkenlerin türünün eşleşmesi zorunludur.

Yukarıda açıklanan XML'den JSON Politikası'nı düzeltmek için Mesaj Ata Politikası'nı kullanarak string türünde başka bir TrackingNumber_output değişkeni tanımlayabilir ve bu değişkeni XML To JSON Politikası'nın <OutputVariable> öğesinde kullanabilirsiniz.

Değiştirilen Mesaj Atama Politikası:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign_TrackingNumber">
    <DisplayName>Assign_TrackingNumber</DisplayName>
    <Properties/>
    <AssignVariable>
        <Name>TrackingNumber</Name>
        <Value><![CDATA[<Code>560098</Code>]]></Value>
        <Ref/>
    </AssignVariable>
    <AssignVariable>
        <Name>TrackingNumber_output</Name>
        <Ref/>
    </AssignVariable>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
    <AssignTo createNew="false" transport="http" type="request"/>
</AssignMessage>

Değiştirilen XMLToJSON politikası:

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

InvalidSourceType

Hata kodu

steps.xml2json.InvalidSourceType

Hata yanıtı gövdesi

{
    "fault": {
        "faultstring": "XMLToJSON[class invalid_class]: Invalid source type class invalid_class. Valid source types are [message, string].",
        "detail": {
            "errorcode": "steps.xml2json.InvalidSourceType"
        }
    }
}

Örnek Hata Mesajı

{
    "fault": {
        "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string].",
        "detail": {
            "errorcode": "steps.xml2json.InvalidSourceType"
        }
    }
}

Neden

Bu hata, <Source> öğesini tanımlamak için kullanılan değişken türü geçersizse ortaya çıkar.Geçerli değişken türleri message ve string'dir.

Teşhis

  1. XML'den JSON'a geçiş politikasında kullanılan geçersiz kaynak türünü tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin aşağıdaki hatada geçersiz tür tam sayıdır.

    "faultstring": "XMLToJSON[class java.lang.Integer]: Invalid source type class java.lang.Integer. Valid source types are [message, string]."
    
  2. Hatanın oluştuğu API proxy'sinde XML'den JSON'a geçişle ilgili tüm politikaları inceleyin. Başarısız olan XML To JSON Politikası'nda, <Source> politikasında belirtilen değişkenin adına dikkat edin.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON_CheckType">
        <DisplayName>XMLToJSON_CheckType</DisplayName>
        <Properties/>
        <Format>google</Format>
        <OutputVariable>response</OutputVariable>
        <Source>BookCode</Source>
    </XMLToJSON>
    
  3. <Source> öğesinde belirtilen değişken türünü belirleyin:

    1. Bu değişkenin ilk olarak tanımlandığı API Proxy paketinin içindeki kodu bulun.
    2. Öncelikle değişkenin tanımlandığı ve doldurulduğu politikayı belirledikten sonra, bu değişkenin türünü aşağıdaki şekilde belirlemeniz gerekir:
      1. Tür özelliğinin değerini kontrol edin (varsa).
      2. Tür özelliği mevcut değilse değişken bir dize olarak kabul edilir.
    3. <Source> öğesinde belirtilen değişken türü message veya string türü değilse hatanın nedeni budur. Sık kullanılan değişkenler ve türleri hakkında daha fazla bilgiyi Değişkenler referansında bulabilirsiniz.

    Örnek olarak, bir XML yükünden değer çıkarmak için kullanılan ve değeri BookCode değişkenine, aşağıda gösterildiği gibi integer türüne ayarlayan bir ExtractVariables politikasını ele alalım:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract_BookCode">
        <DisplayName>Extract_BookCode</DisplayName>
        <Properties/>
        <Source>request</Source>
        <XMLPayload stopPayloadProcessing="false">
            <Variable name="BookCode" type="integer">
                <XPath>/root/BookCode</XPath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    Şimdi, BookCode değişkeninin XML To JSON politikasının <Source> öğesinde kullanıldığını unutmayın:

    <Source>BookCode</Source>
    

    Bu değişkenin türü, geçerli bir <Source> türü olmayan Integer olduğundan API Proxy'si şu hatayı vererek başarısız olur:

    steps.xml2json.InvalidSourceType
    

Çözünürlük

<Source> öğesini belirtmek için kullanılan değişken türünün geçerli olduğundan emin olun. Geçerli <Source> türleri message ve string'dir.

XML To JSON politikasıyla yukarıdaki hatadan kaçınmak için message türünde request değişkenini veya geçerli bir XML yükü olan başka herhangi bir dizeyi kullanabilirsiniz.