Rozwiązywanie problemów z wdrażaniem zasad operacji mapy klucz-wartość

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

InvalidIndex

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Przykładowy komunikat o błędzie

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

Przykładowy zrzut ekranu z błędem

Przyczyna

Jeśli atrybut index określony w elemencie <Get> zasady operacji mapowania par klucz-wartość ma wartość 0 lub jest liczbą ujemną, wdrożenie serwera proxy interfejsu API się nie uda. Indeks zaczyna się od 1, dlatego indeks równy zero lub ujemna liczba całkowita jest uznawany za nieprawidłowy.

Jeśli na przykład w elemencie <Get> zasady operacji map klucz-wartość wartość index jest wartością 0, wdrożenie serwera proxy interfejsu API się nie uda.

Diagnostyka

  1. Określ zasadę operacji mapy klucz-wartość, w której wystąpił błąd, oraz nieprawidłowy indeks. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to GetKVM, a nieprawidłowy indeks to 0:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. Sprawdź, czy wartość indeksu określonego w elemencie <Get> nieudanych zasad operacji mapowania par klucz-wartość jest zgodna z wartością podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określa wartość indeksu jako 0, która jest zgodna z treścią komunikatu o błędzie:

    <?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. Jeśli podany indeks wynosi zero lub jest ujemna liczba całkowita, to jest przyczyną błędu.

    W przykładowej zasadzie operacji mapy klucz-wartość widocznej powyżej wartość indeksu to 0, co jest nieprawidłowa. W związku z tym wdrożenie serwera proxy interfejsu API kończy się niepowodzeniem i wyświetla się błąd:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Rozdzielczość

Sprawdź, czy atrybut indeksu określony w elemencie <Get> zasady operacji mapowania par klucz-wartość jest prawidłowy (nie zerowa lub ujemna liczba całkowita).

Aby poprawić pokazane powyżej przykładowe zasady dotyczące map klucz-wartość, możesz zmodyfikować indeks do wartości 1.

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

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu z błędem

Przyczyna

Ten błąd występuje, jeśli brakuje elementu <Key> lub <Parameter> brakuje elementu <Key> w sekcji <Entry> sekcji <InitialEntries> elementu zasad dotyczących operacji na mapie klucz-wartość.

Diagnostyka

  1. Określ zasadę operacji mapy klucz-wartość, w której wystąpił błąd. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady operacji mapy klucz-wartość to GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. W nieprzestrzeganych zasadach dotyczących map klucz-wartość sprawdź, czy występują <Entry> element, w którym brakuje elementu <Key> lub <Parameter> poniżej elementu <InitialEntries>.

    Oto przykładowa zasada dotycząca operacji mapy klucz-wartość, w której brakuje parametru <Parameter> element w elemencie <Key>:

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

    W tym przypadku problem powoduje pierwszy element.

Rozdzielczość

Upewnij się, że wszystkie elementy <Entry> pod elementem <InitialEntries> w zasadzie operacji mapowania par klucz-wartość zawierają element <Key>, po którym występuje element <Parameter>.

Aby poprawić pokazaną powyżej przykładową zasadę działania mapy klucz-wartość, dodanie elementu <Parameter> rozwiązuje problem:

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

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:

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

Przykładowy komunikat o błędzie

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

Przykładowy zrzut ekranu z błędem

Przyczyna

Ten błąd występuje, jeśli brakuje elementu <Value> pod elementem <Entry> elementu <InitialEntries> zasady operacji mapowania par klucz-wartość.

Diagnostyka

  1. Określ zasadę operacji mapy klucz-wartość, w której wystąpił błąd. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady operacji mapy klucz-wartość to GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. W przypadku nieudanych zasad operacji mapowania par klucz-wartość sprawdź, czy pod polem <InitialEntries> znajduje się element <Entry>, w którym brakuje elementu <Value>.

    Oto przykładowa zasada dotycząca operacji mapy klucz-wartość, w której brakuje elementu <Value>:

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

Rozdzielczość

Upewnij się, że wszystkie elementy <Entry> pod elementem <InitialEntries> w zasadzie operacji mapowania par klucz-wartość zawierają element <Value>.

Aby poprawić pokazaną powyżej przykładową zasadę działania mapy klucz-wartość, dodanie elementu <Value> rozwiązuje problem:

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