Solución de problemas de errores de implementación de la política Key Value Map Operations

Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.

InvalidIndex

Mensaje de error

La implementación del proxy de API a través de la interfaz de usuario o la API de Apigee falla y se 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 ejemplo de error

No se ha podido guardar la revisión 2.

Causa

Si el atributo index especificado en el elemento <Get> de una política Key Value Map Operations es cero o un número negativo, se produce un error en la implementación del proxy de API. El índice empieza por 1, por lo que un índice cero o un número entero negativo no son válidos.

Por ejemplo, si el index especificado es 0 en el elemento <Get> de una política de operaciones de mapa de valores clave, se produce un error en la implementación del proxy de API.

Diagnóstico

  1. Identifica la política Key Value Map Operations en la que se ha producido 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 Key Value Map Operations fallida coincida con el valor identificado en el mensaje de error (paso 1 anterior). Por ejemplo, la siguiente política especifica el valor del índice como 0, que coincide con lo que se indica en 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 entero negativo, esa es la causa del error.

    En el ejemplo de la política Key Value Map Operations que se muestra arriba, el valor del índice es 0, que no es válido. Por lo tanto, el despliegue del proxy de API falla y se muestra el siguiente error:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

Resolución

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

Para corregir la política de operaciones de mapa de valores clave de ejemplo que se muestra arriba, 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 interfaz de usuario o la API de Apigee falla y se 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 ejemplo de error

Error al guardar la revisión 3.

Causa

Este error se produce si falta por completo el elemento <Key> o si falta el elemento <Parameter> dentro del elemento <Key>, que se encuentra debajo del elemento <Entry> del elemento <InitialEntries> de la política Key Value Map Operations.

Diagnóstico

  1. Identifica la política Key Value Map Operations en la que se ha producido el error. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política Key Value Map Operations 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 Key Value Map Operations que ha fallado, comprueba si hay algún elemento <Entry> al que le falte un elemento <Key> o <Parameter> debajo del elemento <InitialEntries>.

    A continuación, se muestra un ejemplo de política Key Value Map Operations que no tiene 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 problema lo provoca el primer elemento.

Resolución

Asegúrese de que todos los elementos <Entry> que se encuentran debajo del elemento <InitialEntries> de la política Key Value Map Operations tengan un elemento <Key> seguido de un elemento <Parameter>.

Para corregir la política de operaciones de mapa de valores de clave de ejemplo que se muestra arriba, añade un elemento <Parameter> para solucionar 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 interfaz de usuario o la API de Apigee falla y se 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 ejemplo de error

Error al guardar la revisión 3.

Causa

Este error se produce si falta el elemento <Value> debajo del elemento <Entry> del elemento <InitialEntries> de la política Key Value Map Operations.

Diagnóstico

  1. Identifica la política Key Value Map Operations en la que se ha producido el error. Puedes encontrar esta información en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política Key Value Map Operations 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 Key Value Map Operations que ha fallado, comprueba si hay algún elemento <Entry> al que le falte un elemento <Value> debajo de <InitialEntries>.

    A continuación se muestra un ejemplo de una política de operaciones de mapa de clave-valor a la que le falta el elemento <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>
        ...
    
    

Resolución

Asegúrese de que todos los elementos <Entry> que se encuentran debajo del elemento <InitialEntries> de la política Key Value Map Operations tengan un elemento <Value>.

Para corregir la política de operaciones de mapa de valores de clave de ejemplo que se muestra arriba, añade un elemento <Value> para solucionar 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>
    ...