Anahtar/Değer Eşleme İşlemleri politikası dağıtım hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
. Git: Apigee X belgeleri.
bilgi

InvalidIndex

Hata Mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Örnek Hata Mesajı

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

Örnek Hata Ekran Görüntüsü

Neden

Anahtar/Değer Eşleme İşlemleri politikasının <Get> öğesinde belirtilen index özelliği sıfır veya negatif bir sayıysa API proxy'sinin dağıtımı başarısız olur. Dizin 1 ile başlar, bu nedenle sıfır veya negatif tam sayı içeren bir dizin geçersiz olarak kabul edilir.

Örneğin, Anahtar/Değer Eşlemesi İşlemleri politikasının <Get> öğesinde belirtilen index değeri 0 ise API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hatanın oluştuğu Anahtar/Değer Eşleme İşlemleri politikasını ve geçersiz dizini tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı GetKVM, geçersiz dizin ise 0 şeklindedir:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. Başarısız Anahtar/Değer Eşleme İşlemleri politikasının <Get> öğesinde belirtilen dizin değerinin, hata mesajında tanımlanan değerle eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politika, dizin değerini hata mesajındaki değerle eşleşen 0 olarak belirtir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
        <DisplayName>GetKVM</DisplayName>
        <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
        <Scope>environment</Scope>
        <Get assignTo="foo_variable" index="0">
            <Key>
                <Parameter>FooKey_1</Parameter>
            </Key>
        </Get>
    </KeyValueMapOperations>
    
  3. Belirtilen dizin sıfır veya negatif bir tam sayıysa hatanın nedeni budur.

    Yukarıda gösterilen örnek Anahtar/Değer Eşleme İşlemleri politikasında dizin değeri geçersiz olan 0 şeklindedir. Bu nedenle, API Proxy'sinin dağıtımı şu hatayla başarısız olur:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Çözünürlük

Anahtar/Değer Eşleme İşlemleri politikasının <Get> öğesinde belirtilen dizin özelliğinin geçerli olduğundan (sıfır olmayan veya negatif tam sayı) emin olun.

Yukarıda gösterilen örnek Anahtar/Değer Eşleme İşlemleri politikasını düzeltmek için dizini 1 olarak değiştirebilirsiniz.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
    <DisplayName>GetKVM</DisplayName>
    <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
    <Scope>environment</Scope>
    <Get assignTo="foo_variable" index="1">
        <Key>
            <Parameter>FooKey_1</Parameter>
        </Key>
    </Get>
</KeyValueMapOperations>

KeyIsMissing

Hata Mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

Error Saving Revision revision_number
Error occurred while validation of bean policy_name.xml
Reason: - Non null value expected for element Parameter in Entry.

Örnek Hata Mesajı

Error Saving Revision 3
Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry

Örnek Hata Ekran Görüntüsü

Neden

Bu hata, <Key> öğesi tamamen yoksa veya <Parameter> öğesi tamamen eksikse ortaya çıkar öğesi, <InitialEntries> öğesinin <Entry> altındaki <Key> öğesinde eksik öğesi.

Teşhis

  1. Hatanın oluştuğu Anahtar/Değer Eşlemesi İşlemleri politikasını belirleyin. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada Anahtar/Değer Eşleme İşlemleri politikasının adı GetKVM şeklindedir.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. Başarısız Anahtar/Değer Eşleme İşlemleri politikasında herhangi bir <Entry> olup olmadığını kontrol edin. öğesi için, <InitialEntries> altında eksik <Key> veya <Parameter> öğesi bulunmalıdır.

    Aşağıda, <Parameter> içermeyen bir Temel Değer Eşleme İşlemleri politikası örneği verilmiştir <Key> öğesi içinde bir öğe oluşturun:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="FooKVM">
        <DisplayName>GetKVM</DisplayName>
        <Properties/>
        <ExclusiveCache>false</ExclusiveCache>
        <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
        <InitialEntries>
            <Entry>
                <Key/>
                <Value>v1</Value>
            </Entry>
            <Entry>
                <Key>
                    <Parameter>k2</Parameter>
                </Key>
                <Value>v2</Value>
            </Entry>
        </InitialEntries>
    

    Bu durumda, soruna ilk öğe neden olmaktadır.

Çözünürlük

Temel Değer Eşleme İşlemleri politikasında <InitialEntries> öğesinin altında bulunan tüm <Entry> öğelerinde bir <Key> öğesi ve ardından bir <Parameter> öğesi bulunduğundan emin olun.

Yukarıda gösterilen örnek Anahtar/Değer Eşleme İşlemleri politikasını düzeltmek için bir <Parameter> öğesi eklemek sorunu çözer:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="FooKVM">
    <DisplayName>GetKVM</DisplayName>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
    <InitialEntries>
        <Entry>
            <Key>
                <Parameter>k1</Parameter>
            </Key>
            <Value>v1</Value>
        </Entry>
        <Entry>
            <Key>
                <Parameter>k2</Parameter>
            </Key>
            <Value>v2</Value>
        </Entry>
    </InitialEntries>
    ...

ValueIsMissing

Hata Mesajı

API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:

Error Saving Revision revision_number
Error occurred while validation of bean policy_name.xml. Reason: - Non null value expected for element Value in Entry.

Örnek Hata Mesajı

Error Saving Revision 3
Error occurred while validation of bean GetKVM.xml.Reason: - Non null value expected for element Value in Entry

Örnek Hata Ekran Görüntüsü

Neden

Bu hata, Anahtar Değer Eşleme İşlemleri politikasındaki <InitialEntries> öğesinin <Entry> öğesinin altında <Value> öğesi yoksa ortaya çıkar.

Teşhis

  1. Hatanın oluştuğu Anahtar/Değer Eşlemesi İşlemleri politikasını belirleyin. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada Anahtar/Değer Eşleme İşlemleri politikasının adı GetKVM şeklindedir.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. Başarısız Anahtar/Değer Eşleme İşlemleri politikasında, <InitialEntries> altında eksik <Value> öğesi olan bir <Entry> öğesi olup olmadığını kontrol edin.

    <Value> öğesi eksik olan Temel Değer Eşleme İşlemleri politikası örneğini aşağıda bulabilirsiniz:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="testNotEncrypte">
        <DisplayName>GetKVM3</DisplayName>
        <Properties/>
        <ExclusiveCache>false</ExclusiveCache>
        <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
        <InitialEntries>
            <Entry>
                <Key>
                    <Parameter>k1</Parameter>
                </Key>
            </Entry>
            <Entry>
                <Key>
                    <Parameter>k2</Parameter>
                </Key>
                <Value>v2</Value>
            </Entry>
        </InitialEntries>
        ...
    
    

Çözünürlük

Temel Değer Eşleme İşlemleri politikasında <InitialEntries> öğesinin altında bulunan tüm <Entry> öğelerinde <Value> öğesi bulunduğundan emin olun.

Yukarıda gösterilen örnek Anahtar/Değer Eşleme İşlemleri politikasını düzeltmek için bir <Value> öğesi eklemek sorunu çözer:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="testNotEncrypte">
    <DisplayName>GetKVM3</DisplayName>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
    <InitialEntries>
        <Entry>
            <Key>
                <Parameter>k1</Parameter>
            </Key>
            <Value>v1</Value>
        </Entry>
        <Entry>
            <Key>
                <Parameter>k2</Parameter>
            </Key>
            <Value>v2</Value>
        </Entry>
    </InitialEntries>
    ...