Estás viendo la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
NothingToExtract
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory. Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
Ejemplo de mensaje de error
Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Captura de pantalla del ejemplo.
Causa
Si la política de extracción de variables no tiene ninguno de los elementos URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
, la implementación del proxy de API falla debido a que no hay nada que extraer.
Como se indica en el mensaje de error, la política de Extracción de variables debe tener al menos uno de los siguientes elementos incluidos en la política: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
.
Diagnóstico
Examina la política de extracción de variables que se nombra en el mensaje de error. Si la política no tiene ni siquiera uno de los siguientes elementos: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
, esa es la causa del error. Por ejemplo, la siguiente política de extracción de variables no tiene ninguno de los elementos mencionados antes:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
</ExtractVariables>
Dado que ninguno de los elementos obligatorios está presente en la política de Extracción de variables, la implementación del proxy de API falla.
Solución
Asegúrate de que la política de Extracción de variables tenga al menos uno de los siguientes elementos obligatorios: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
, JSONPayload
. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
<Source>request</Source>
<XMLPayload>
<Namespaces/>
<Variable name="age" type="integer">
<XPath>/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NONEmptyPrefixMappedToEmptyURI
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.
Ejemplo de mensaje de error
Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Captura de pantalla del ejemplo.
Causa
Este error se produce si la política de extracción de variables tiene un prefijo definido debajo del elemento <Namespace>
en el elemento <XMLPayload>
, pero no se define un URI.
Diagnóstico
Identifica la política de extracción de variables en la que se produjo el error y el nombre del prefijo. Puedes encontrar ambos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
EV-XML-Age
y el prefijo esapigee
:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
En el archivo XML de la política de extracción de variables con errores, verifica que el nombre del prefijo establecido en el elemento
<Namespace>
dentro del elemento<XMLPayload>
coincida con el nombre del prefijo identificado en el mensaje de error (paso 1 anterior). Por ejemplo, en la siguiente política se especifica un prefijo llamadoapigee
en el elemento<Namespace>
, que coincide con el contenido del mensaje de error:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="apigee"></Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath> </Variable> </XMLPayload> </ExtractVariables>
Valida si el elemento
<Namespace>
con el prefijo específico identificado en el paso n.º 2 tiene un URI válido. Si falta el URI, esa es la causa del error.En la política de extracción de variables de ejemplo anterior, ten en cuenta que no hay un URI correspondiente al elemento
<Namespace>
con el prefijoapigee
. Por lo tanto, verás el siguiente error:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Solución
Asegúrate de que todos los elementos <Namespace>
definidos con un prefijo tengan el URI correspondiente en la política de extracción de variables. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
</Variable>
</XMLPayload>
</ExtractVariables>
DuplicatePrefix
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Duplicate prefix [prefix_name].
Ejemplo de mensaje de error
Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Captura de pantalla del ejemplo.
Causa
Este error se produce si la política de extracción de variables tiene el mismo prefijo definido más de una vez en el elemento <Namespace>
debajo del elemento <XMLPayload>
.
Por ejemplo, este error se produce, ya que el prefijo apigee
se define dos veces como se muestra a continuación:
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
Diagnóstico
Identifica la política de extracción de variables en la que se produjo el error y el nombre del prefijo. Puedes encontrar ambos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
EV-XML-Age
y el prefijo esapigee
:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
En el archivo XML de la política de extracción de variables con errores, verifica que el nombre del prefijo establecido en el elemento
<Namespace>
dentro del elemento<XMLPayload>
coincida con el nombre del prefijo identificado en el mensaje de error (paso 1 anterior). Por ejemplo, en la siguiente política se especifica un prefijo llamadoapigee
en el elemento<Namespace>
, que coincide con el contenido del mensaje de error:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="gmail">http://mail.google.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <Variable name="legName" type="string <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload> </ExtractVariables>
Determina si el elemento
<Namespace>
con el prefijo específico, que se identificó en el paso n.º 2, se definió más de una vez. Si es así, esa es la causa del error.En la política de extracción de variables del ejemplo anterior, ten en cuenta que el elemento
<Namespace>
con el prefijoapigee
se definieron dos veces. Por lo tanto, verás el siguiente error:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Solución
Asegúrate de que haya solo una definición para cada prefijo en los elementos <Namespace>
en la política deExtracción de variables. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
</Variable>
</XMLPayload>
</ExtractVariables>
NoXPathsToEvaluate
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no xpaths to evaluate in variable name.
Ejemplo de mensaje de error
Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
Captura de pantalla del ejemplo.
Causa
Si la política de extracción de variables no tiene el elemento <XPath>
dentro del elemento <XMLPayload>
, la implementación del proxy de API falla con el error que se muestra antes.
Diagnóstico
Identifica la política de extracción de variables que falló del mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Extract-Variables-1
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
En el archivo XML de la política de extracción de variables con errores, verifica si hay un elemento
<XMLPayload>
sin el elemento secundario<XPath>
. Si es así, esa es la causa del error.Por ejemplo, esta es una política de extracción de variables que tiene un elemento
<XMLPayload>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="HostReachable" type="boolean"> </Variable> </XMLPayload> </ExtractVariables>
Como no hay ningún elemento
<XPath>
presente, la implementación del proxy de API falla.
Solución
Asegúrate de que la política de Extracción de variables tenga un elemento <XPath>
definido en el elemento <XMLPayload>
. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="HostReachable" type="boolean">
<XPath>/isReachable</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
EmptyXPathExpression
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: XPath expression is empty in variable name.
Ejemplo de mensaje de error
Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.
Captura de pantalla del ejemplo.
Causa
Si la política de extracción de variables tiene una expresión <XPath>
vacía dentro del elemento <XMLPayload>
, fallará la implementación del proxy de API.
Diagnóstico
Identifica la política de extracción de variables que falló del mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Extract-Variables-1
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
En el archivo XML de la política de extracción de variables con errores, determina si hay un elemento secundario
<XMLPayload>
con un elemento secundario<XPath>
vacío. Si es así, esa es la causa del error.Por ejemplo, esta es una política de extracción de variables que tiene un elemento
<XMLPayload>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="address" type="string"> <XPath></XPath> </Variable> </XMLPayload> </ExtractVariables>
Dado que hay un elemento
<XPath>
vacío dentro del elemento<XMLPayload>
, la implementación del proxy de API falla.
Solución
Asegúrate de que la política de extracción de variables tenga un elemento <XPath>
no válido y válido definido en el elemento <XMLPayload>
. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="address" type="string">
<XPath>/address</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NoJSONPathsToEvaluate
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.
Ejemplo de mensaje de error
Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
Captura de pantalla del ejemplo.
Causa
Si la política de extracción de variables no tiene el elemento <JSONPath>
dentro del elemento <JSONPayload>
, la implementación del proxy de API falla con el error que se muestra antes.
Diagnóstico
Identifica la política de extracción de variables que falló del mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Extract-Variables-1
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
En el archivo XML de la política de extracción de variables con errores, determina si hay un elemento
<JSONPayload>
sin el elemento secundario<JSONPath>
requerido. Si es así, esa es la causa del error.Por ejemplo, esta es una política de extracción de variables que tiene un elemento
<JSONPayload>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <JSONPayload> <Variable name="title"> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> </ExtractVariables>
La implementación del proxy de API fallará debido a que no hay un elemento secundario
<JSONPath>
definido en el elemento<JSONPayload>
.
Solución
Asegúrate de que la política de extracción de variables tenga un elemento <JSONPath>
definido en el elemento <JSONPayload>
. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<JSONPayload>
<Variable name="title">
<JSONPath>$.book.title</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>
EmptyJSONPathExpression
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: JSONPath expression is empty in variable name.
Ejemplo de mensaje de error
Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
Captura de pantalla del ejemplo.
Causa
Si la política de extracción de variables tiene una expresión <JSONPath>
vacía dentro del elemento <JSONPayload>
, fallará la implementación del proxy de API.
Diagnóstico
Identifica la política de extracción de variables que falló del mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Extract-Variables-1
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
En el archivo XML de la política de extracción de variables con errores, verifica si hay un elemento
<JSONPayload>
con un elemento secundario<JSONPath>
vacío. Si es así, esa es la causa del error.Por ejemplo, esta es una política de extracción de variables que tiene un elemento
<JSONPayload>
:<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <JSONPayload> <Variable name="account_number" type="integer"> <JSONPath></JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> </ExtractVariables>
Dado que hay un elemento
<JSONPath>
vacío dentro del elemento<JSONPayload>
, la implementación del proxy de API falla.
Solución
Asegúrate de que la política de extracción de variables tenga un elemento <JSONPath>
no válido y válido definido en el elemento <JSONPayload>
. Por ejemplo:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<JSONPayload>
<Variable name="account_number" type="integer">
<JSONPath>$.account.number</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>
MissingName
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]
Ejemplo de mensaje de error
Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
Captura de pantalla del ejemplo.
Causa
Si la política de extracción de variables no tiene el atributo name
en ninguno de los elementos de la política como QueryParam
, Header
, FormParam
o Variable
en los casos necesarios, la implementación del proxy de la API falla.
Por ejemplo, este error se genera si falta el atributo name
en un elemento Variable
.
Diagnóstico
Identifica el nombre de la política extracción de variables en que se produjo el error y el elemento al que le falta el atributo
name
. Puedes encontrar estos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política esExtract-Variables-1
y el nombre del elemento esVariable
:Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
En el archivo XML de la política extracción de variables con errores, comprueba que todos los elementos con el nombre determinado en el paso 1 anterior tengan un atributo
name
. Si falta algún elemento en el atributo de nombre, esa es la causa del error.Por ejemplo, la siguiente política de extracción de variables tiene el elemento
<Variable>
definido:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Variable type="boolean"> <Pattern>{isAccountActive}</Pattern> </Variable> </ExtractVariables>
Observa que falta el atributo
name
en el elementoVariable
, por lo que falla la implementación del proxy de API.
Solución
Asegúrate de que la política de extracción de variables contenga el atributo name
requerido para los elementos QueryParam
, Header
, FormParam
o Variable
. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Variable name="account_active" type="boolean">
<Pattern>{isAccountActive}</Pattern>
</Variable>
</ExtractVariables>
PatternWithoutVariable
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Saving Revision [revision_number] Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]
Ejemplo de mensaje de error
Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
Captura de pantalla del ejemplo.
Causa
Fallará la implementación del proxy de API si la política de extracción de variables no tiene una variable especificada en el elemento <Pattern>
. El elemento <Pattern>
requiere el nombre de la variable en la que se almacenarán los datos extraídos.
Diagnóstico
Identifica el nombre de la política de extracción de variables en la que se produjo el error y el patrón para el que falta la variable. Puedes encontrar estos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Extract-Variables-1
y el nombre del elemento es/a/b
:Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
En el archivo XML de la política de extracción de variables con errores, verifica que el patrón que se establece en el elemento
<Pattern>
coincida con el patrón identificado en el mensaje de error (paso 1 anterior). Por ejemplo, en la siguiente política, se especifica un patrón/a/b
, que coincide con el contenido del mensaje de error:Por ejemplo, esta es una política de extracción de variables que tiene tres elementos
<Pattern>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/</Pattern> <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> </ExtractVariables>
Comprueba si el elemento
<Pattern>
identificado en el paso 2 no tiene una variable. Las variables deben incluirse entre llaves. Si el patrón no tiene una variable, esa es la causa del error.El elemento
<Pattern>
que tiene el patrón /a/b no incluye una variable. Por lo tanto, fallará la implementación del proxy de API<Pattern ignoreCase="true">/a/b/</Pattern>
Solución
Asegúrate de que cualquier elemento <Pattern>
incluya una variable (un nombre entre llaves). Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-1">
<Source>request</Source>
<URIPath>
<Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
</URIPath>
<VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>
CannotBeConvertedToNodeset
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Deploying Revision [revision_number] ExtractVariables [policy_name]: Result of xpath [policy_name] cannot be converted to nodeset. Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
Ejemplo de mensaje de error
Error Deploying Revision 4 to test
ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
Captura de pantalla del ejemplo.
Causa
Si la política de extracción de variable tiene una expresión <XPath>
en la que el tipo <Variable>
se define como nodeset, pero la expresión no se puede convertir en el conjunto de nodos, la implementación de la API de proxy falla.
Diagnóstico
Identifica la política de extracción de variables en la que se produjo el error y la XPath que no se puede convertir en el nodeset. Puedes encontrar ambos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Extract-Variables-1
y la XPath es123
.ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
En el archivo XML de la política de extracción de variables de error, verifica que la XPath definida en el elemento
<XPath>
coincida con la XPath identificada en el mensaje de error (paso n.o 1 anterior). Por ejemplo, la siguiente política especificacomo 123
, que coincide con lo que contiene el mensaje de error:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>visitor</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="age" type="nodeset"> <XPath>123</XPath> </Variable> </XMLPayload> </ExtractVariables>
Examina el tipo de elemento
<Variable>
correspondiente al<XPath>
identificado en el paso 2. Si el elemento<Variable>
esnodeset
, esa es la causa del error.Observa que la expresión
<XPath>
es123
en la política de extracción de variables de ejemplo.<XPath>123</XPath>
La expresión
123
no se puede convertir en el conjunto de nodos. Por lo tanto, la implementación del proxy de API falla.
Solución
Asegúrate de que las expresiones <XPath>
usadas en la política de extracción de variables se puedan convertir en un conjunto de nodos si el tipo <Variable>
se define como conjunto de nodos. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>visitor</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="age" type="nodeset">
<XPath>/visitor/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
InvalidPattern
Mensaje de error
Si la implementación del proxy de API a través de la IU de Apigee o la API falla, mostrará con este mensaje de error:
Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]
Ejemplo de mensaje de error
Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
Captura de pantalla del ejemplo.
Causa
Si la definición del elemento <Pattern>
no es válida en ninguno de los elementos, como URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
, dentro de la política de extracción de variables, fallará la implementación del proxy de API.
Diagnóstico
Identifica la política de extracción de variables que falló del mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
Extract-Variables-2
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
En el archivo XML de la política de extracción de variables de error, verifica si alguno de estos elementos está presente e incluye un elemento
<Pattern>
:URIPath
,QueryParam
,Header
,FormParam
,XMLPayload
oJSONPayload
.Por ejemplo, a continuación, se muestra un ejemplo de una política de extracción de variables con un elemento
<Pattern>
dentro del elemento<QueryParam>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractVariables-2"> <DisplayName>ExtractVariables-2</DisplayName> <Source>request</Source> <QueryParam name="code"> <Pattern ignoreCase="true">{*}</Pattern> </QueryParam> <VariablePrefix>queryinfo</VariablePrefix> </ExtractVariables>
Examina la definición de cada uno de los elementos
<Pattern>
. Si hay algún elemento<Pattern>
con una definición no válida, esa es la causa del error.En la política de extracción de variables de ejemplo que se muestra arriba, ten en cuenta que la definición
<Pattern>
dentro del elemento<QueryParam>
no es válida. Por lo tanto, la implementación del proxy de API fallará. Consulta también Acerca de la coincidencia y la creación de variables<Pattern ignoreCase="true">{*}</Pattern>
Solución
Asegúrate de que la definición del elemento <Pattern>
dentro de los elementos URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
de la política de extracción de variables sea válida. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-2">
<DisplayName>Extract a value from a query parameter</DisplayName>
<Source>request</Source>
<QueryParam name="code">
<Pattern ignoreCase="true">{code}</Pattern>
</QueryParam>
<VariablePrefix>queryinfo</VariablePrefix>
</ExtractVariables>
Consulta también Acerca de la coincidencia y la creación de variables
XPathCompilationFailed
Mensaje de error
La implementación del proxy de API a través de la IU o la API de Apigee falla con este mensaje de error:
Error Deploying Revision [revision_number] ExtractVariables [policy_name]: Failed to compile xpath [xpath] Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
Ejemplo de mensaje de error
Error Deploying Revision 1 to test
ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
Captura de pantalla del ejemplo.
Causa
La implementación del proxy de API fallará si el prefijo o el valor que se usó en el elemento <XPath>
no forma parte de los espacios de nombres declarados en la política de extracción de variables.
Puede encontrar más información sobre los espacios de nombres, la XPath y el prefijo en Espacios de nombres XML y cómo afectan las XPath y XSLT.
Diagnóstico
Identifica la política de extracción de variables en la que se produjo el error y la XPath que no se pudo compilar. Puedes encontrar ambos elementos en el mensaje de error. Por ejemplo, en el siguiente error, el nombre de la política es
EV-XML-Age
y la Xpath es/apigee:Directions/apigee:route/apigee:leg/apigee:name
.ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
En el archivo XML de la política de extracción de variables de error, verifica que la XPath definida en el elemento
<XPath>
coincida con la XPath identificada en el mensaje de error (paso n.o 1 anterior). Por ejemplo, la siguiente política especificacomo /apigee:Directions/apigee:route/apigee:leg/apigee:name
, que coincide con lo que contiene el mensaje de error:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload> </ExtractVariables>
Examina los elementos
<Namespaces>
y<XPath>
en la política de extracción de variables. Si el<XPath>
específico indicado en el mensaje de error usa un prefijo o valor que no forma parte de los espacios de nombres declarados en la política de extracción de variables, esa es la causa del error.Ten en cuenta que el
<XPath>
específico usa el prefijoapigee
en la política de extracción de variables de ejemplo.<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
Sin embargo, el prefijo
apigee
no se define en ninguno de los elementos<Namespace>
. Por lo tanto, la compilación de<XPath>
falla lo que da lugar a un error de implementación.
Solución
Asegúrate de que todos los espacios de nombres que se usan en los elementos <XPath>
se declaren en la política de extracción de variables. Por ejemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>