Solución de problemas de errores en la implementación de la política de operaciones de mapa de clave-valor

Estás consultando la documentación de Apigee Edge.
Consulta la documentación de Apigee X.
Información

InvalidIndex

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra este mensaje de error:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

Ejemplo de mensaje de error

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

Captura de pantalla de error de ejemplo

Causa

Si el atributo index especificado en el elemento <Get> de una política de operaciones de mapa de clave-valor es cero o un número negativo, la implementación del proxy de API falla. El índice comienza desde 1, por lo que un índice de cero o un número entero negativo se considera no válido.

Por ejemplo, si el index especificado es 0 en el elemento <Get> de una política de operaciones de mapa de clave-valor, la implementación del proxy de API falla.

Diagnóstico

  1. Identifica la política de operaciones de mapa de valor clave en la que se produjo el error y el índice no válido. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es GetKVM y el índice no válido es 0:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. Verifica que el valor del índice especificado en el elemento <Get> de la política de operaciones de mapa de clave-valor con errores coincida con el valor identificado en el mensaje de error (paso n.º 1 anterior). Por ejemplo, en la siguiente política, se especifica el valor del índice como 0, que coincide con lo que contiene el mensaje de error:

    <?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. Si el índice especificado es cero o un número entero negativo, esa es la causa del error.

    En la política de operaciones de mapa de clave-valor de ejemplo anterior, el valor del índice es 0, que no es válido. Por lo tanto, la implementación del proxy de API falla con el siguiente error:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Resolución

Asegúrate de que el atributo de índice especificado en el elemento <Get> de la política de operaciones de mapa de clave-valor sea válido (distinto de cero o número entero negativo).

Para corregir la política de operaciones de mapa de clave-valor anterior, puedes modificar el índice a 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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de error de ejemplo

Causa

Este error se produce si el elemento <Key> falta por completo o el elemento <Parameter> falta en el elemento <Key> debajo del <Entry> del elemento <InitialEntries> de la política de operaciones de mapa de clave-valor.

Diagnóstico

  1. Identifica la política de operaciones de mapa de clave-valor en la que se produjo el error. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política de operaciones de mapa de clave-valor es GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. En la política de operaciones de mapa de clave-valor con errores, verifica si hay algún elemento <Entry> que tenga un elemento <Key> o <Parameter> faltante debajo de <InitialEntries>.

    A continuación, se muestra un ejemplo de la política de operaciones de mapa de clave-valor que contiene el elemento <Parameter> dentro del elemento <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>
    

    En este caso, el primer elemento genera el problema.

Solución

Asegúrate de que todos los elementos <Entry> debajo del elemento <InitialEntries> en la política de operaciones de mapa de clave-valor tengan un elemento <Key> seguido de un elemento <Parameter>.

Para corregir la política de ejemplo de operaciones de mapa de clave-valor anterior, agregar un elemento <Parameter> resuelve el problema:

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

Mensaje de error

La implementación del proxy de API a través de la IU de Edge o de la API de Edge Management falla y muestra este mensaje de error:

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

Ejemplo de mensaje de error

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

Captura de pantalla de error de ejemplo

Causa

Este error ocurre si falta el elemento <Value> debajo del elemento <Entry> del elemento <InitialEntries> de la política de operaciones de mapa de clave-valor.

Diagnóstico

  1. Identifica la política de operaciones de mapa de clave-valor en la que se produjo el error. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política de operaciones de mapa de clave-valor es GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. En la política de operaciones de mapa de clave-valor con errores, verifica si hay algún elemento <Entry> que tenga un elemento <Value> faltante debajo de <InitialEntries>.

    A continuación, se muestra un ejemplo de la política de operaciones de mapa de clave-valor que tiene el elemento <Value> faltante:

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

Resolución

Asegúrate de que todos los elementos <Entry> debajo del elemento <InitialEntries> en la política de operaciones de mapa de clave-valor tengan un elemento <Value>.

Para corregir la política de ejemplo de operaciones de mapa de clave-valor anterior, agregar un elemento <Value> resuelve el problema:

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