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

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

InvalidIndex

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest 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.

Zrzut ekranu z przykładowym błędem

Przyczyna

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

Jeśli na przykład index jest określony jako 0 w elemencie <Get> zasady operacji mapy klucz-wartość, 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, i nieprawidłowy indeks. Informacje te 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ślona w elemencie <Get> w zasadach dotyczących nieudanych operacji na mapie 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 w postaci 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 to zero lub ujemna liczba całkowita, to jest przyczyną błędu.

    W przykładowej zasadzie operacji mapy klucz-wartość pokazanej powyżej wartość indeksu to 0, co jest nieprawidłowe. Dlatego wdrożenie serwera proxy interfejsu API nie powiedzie się z błędem:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Rozdzielczość

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

Aby poprawić przykładową zasadę operacji mapowania par klucz-wartość widoczną powyżej, zmień indeks na 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 lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest 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

Zrzut ekranu z przykładowym błędem

Przyczyna

Ten błąd występuje, jeśli całkowicie brakuje elementu <Key> lub brakuje elementu <Parameter> w elemencie <Key> poniżej <Entry> elementu <InitialEntries> zasad operacji mapy klucz-wartość.

Diagnostyka

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

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. W nieudanej zasadzie operacji mapowania par klucz-wartość sprawdź, czy w żadnym elemencie <Entry> pod elementem <InitialEntries> brakuje elementu <Key> lub <Parameter>.

    Oto przykładowa zasada dotycząca operacji mapowania par klucz-wartość, w której brakuje elementu <Parameter> 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 zasadach operacji mapowania par klucz-wartość zawierają element <Key>, po którym następuje element <Parameter>.

Aby poprawić przykładową zasadę operacji mapy klucz-wartość przedstawioną powyżej, 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 lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest 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

Zrzut ekranu z przykładowym błędem

Przyczyna

Ten błąd występuje, jeśli brakuje elementu <Value> poniżej elementu <Entry> elementu <InitialEntries> zasady operacji na mapie par klucz-wartość.

Diagnostyka

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

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. W nieudanych zasadach operacji mapy klucz-wartość sprawdź, czy w zasadzie <InitialEntries> występują jakieś elementy <Entry>, w których brakuje elementu <Value>.

    Oto przykładowa zasada dotycząca operacji na mapie 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ść

Sprawdź, czy wszystkie elementy <Entry> pod elementem <InitialEntries> w zasadach korzystania z mapowania klucz-wartość zawierają element <Value>.

Aby poprawić przykładową zasadę operacji mapy klucz-wartość przedstawioną powyżej, 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>
    ...