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

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

InvalidIndex

Komunikat o błędzie

Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API nie powiodło się i wyświetla 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 na mapie klucz-wartość ma wartość zero lub liczbę ujemną, wdrożenie serwera proxy interfejsu API nie powiedzie się. Indeks zaczyna się od 1, więc indeks o wartości zero lub ujemnej liczby całkowitej jest uznawany za nieprawidłowy.

Jeśli na przykład określono wartość index 0 w elemencie <Get> zasady operacji na mapie klucz-wartość, wdrożenie serwera proxy interfejsu API nie powiedzie się.

Diagnostyka

  1. Określ zasadę operacji na mapie 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ślona w elemencie <Get> zasady operacji na mapie klucz-wartość, która spowodowała błąd, 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 wartością w komunikacie 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 określony indeks to zero lub ujemna liczba całkowita, jest to przyczyną błędu.

    W przykładowej zasadzie operacji na mapie klucz-wartość pokazanej powyżej wartość indeksu to 0, która jest nieprawidłowa. W związku z tym wdrożenie serwera proxy interfejsu API nie powiedzie się i wyświetli się ten błąd:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Rozdzielczość

Upewnij się, że atrybut indeksu określony w elemencie <Get> zasady operacji na mapie klucz-wartość jest prawidłowy (nie jest zerem ani ujemną liczbą całkowitą).

Aby poprawić przykładową zasadę operacji na mapie klucz-wartość pokazaną powyżej, możesz zmienić 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 nie powiodło się i wyświetla 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> elementu w elemencie <Key> w elemencie <Entry> elementu <InitialEntries> zasady operacji na mapie klucz-wartość.

Diagnostyka

  1. Określ zasadę operacji na mapie klucz-wartość, w której wystąpił błąd. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w tym 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 zasadzie operacji na mapie klucz-wartość, która spowodowała błąd, sprawdź, czy istnieje <Entry> element, w którym brakuje <Key> lub <Parameter> elementu w elemencie <InitialEntries>.

    Oto przykładowa zasada operacji na mapie klucz-wartość, w której brakuje <Parameter> elementu 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> w elemencie <InitialEntries> zasady operacji na mapie klucz-wartość mają element <Key> poprzedzony elementem <Parameter>.

Aby poprawić przykładową zasadę operacji na mapie klucz-wartość pokazaną powyżej, dodaj element <Parameter>:

<?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 nie powiodło się i wyświetla 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> w elemencie <Entry> elementu <InitialEntries> zasady operacji na mapie klucz-wartość.

Diagnostyka

  1. Określ zasadę operacji na mapie klucz-wartość, w której wystąpił błąd. Te informacje znajdziesz w komunikacie o błędzie. Na przykład w tym 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 zasadzie operacji na mapie klucz-wartość, która spowodowała błąd, sprawdź, czy istnieje element <Entry>, w którym brakuje elementu <Value> w elemencie <InitialEntries>.

    Oto przykładowa zasada 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ść

Upewnij się, że wszystkie elementy <Entry> w elemencie <InitialEntries> zasady operacji na mapie klucz-wartość mają element <Value>.

Aby poprawić przykładową zasadę operacji na mapie klucz-wartość pokazaną powyżej, dodaj element <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>
            <Value>v1</Value>
        </Entry>
        <Entry>
            <Key>
                <Parameter>k2</Parameter>
            </Key>
            <Value>v2</Value>
        </Entry>
    </InitialEntries>
    ...