Estás consultando la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de
Apigee Edge.
NothingToExtract
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] 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 de ejemplo
Causa
Si la política Extract Variables no tiene ninguno de los elementos URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
, no se podrá desplegar el proxy de API, ya que no habrá nada que extraer.
Como se indica en el mensaje de error, la política Extract Variables debe incluir al menos uno de estos elementos: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
.
Diagnóstico
Examina la política Extract Variables que se menciona en el mensaje de error. Si la política no tiene al menos uno de los siguientes elementos: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
, esa es la causa del error. Por ejemplo, la política Extract Variables siguiente no tiene ninguno de los elementos mencionados anteriormente:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
</ExtractVariables>
Como ninguno de los elementos obligatorios está presente en la política Extract Variables, no se puede implementar el proxy de API.
Resolución
Asegúrate de que la política Extraer variables tenga al menos uno de estos elementos obligatorios: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o 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
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] 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 de ejemplo
Causa
Este error se produce si la política Extract Variables tiene un prefijo definido en el elemento <Namespace>
del elemento <XMLPayload>
, pero no se ha definido ningún URI.
Diagnóstico
Identifica la política Extract Variables en la que se ha producido 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 XML de la política Extract Variables que ha fallado, comprueba que el nombre del prefijo definido en el elemento
<Namespace>
del elemento<XMLPayload>
coincida con el nombre del prefijo identificado en el mensaje de error (paso 1 anterior). Por ejemplo, la siguiente política especifica un prefijo llamadoapigee
en el elemento<Namespace>
, que coincide con lo que aparece en 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="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 2 tiene un URI válido. Si falta el URI, esa es la causa del error.En la política Extract Variables de ejemplo que se muestra arriba, observe que no hay ningún URI correspondiente al elemento
<Namespace>
con el prefijoapigee
. Por lo tanto, se produce el siguiente error:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Resolución
Asegúrate de que todos los elementos <Namespace>
definidos con un prefijo tengan un URI correspondiente en la política Extract 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
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] 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 de ejemplo
Causa
Este error se produce si la política Extract Variables tiene el mismo prefijo definido más de una vez en el elemento <Namespace>
del elemento <XMLPayload>
.
Por ejemplo, este error se produce porque 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 Extract Variables en la que se ha producido 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 XML de la política Extract Variables que ha fallado, comprueba que el nombre del prefijo definido en el elemento
<Namespace>
del elemento<XMLPayload>
coincida con el nombre del prefijo identificado en el mensaje de error (paso 1 anterior). Por ejemplo, la siguiente política especifica un prefijo llamadoapigee
en el elemento<Namespace>
, que coincide con lo que aparece en 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> <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, identificado en el paso 2, se ha definido más de una vez. Si se define más de una vez, esa es la causa del error.En el ejemplo de política Extract Variables que se muestra arriba, observa que el elemento
<Namespace>
con el prefijoapigee
se ha definido dos veces. Por lo tanto, se produce el siguiente error:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Resolución
Asegúrate de que solo haya una definición para cada prefijo en los elementos <Namespace>
de la política Extract 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
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] 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 de ejemplo
Causa
Si la política Extract Variables no tiene el elemento <XPath>
dentro del elemento <XMLPayload>
, la implementación del proxy de API fallará y se mostrará el error de arriba.
Diagnóstico
Identifica la política Extract Variables que ha fallado en el 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 XML de la política Extract Variables que ha fallado, comprueba si hay un elemento
<XMLPayload>
sin el elemento secundario<XPath>
. Si es así, esa es la causa del error.Por ejemplo, a continuación se muestra una política Extract 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>
, la implementación del proxy de API falla.
Resolución
Asegúrate de que la política Extract 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
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] 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 de ejemplo
Causa
Si la política Extract Variables tiene una expresión <XPath>
vacía en el elemento <XMLPayload>
, la implementación del proxy de API falla.
Diagnóstico
Identifica la política Extract Variables que ha fallado en el 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 XML de la política Extract Variables que ha fallado, determina si hay un elemento
<XMLPayload>
con un elemento secundario<XPath>
vacío. Si es así, esa es la causa del error.Por ejemplo, a continuación se muestra una política Extract 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>
Como hay un elemento
<XPath>
vacío dentro del elemento<XMLPayload>
, no se puede implementar el proxy de API.
Resolución
Asegúrate de que la política Extract Variables tenga un elemento <XPath>
no vacío 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
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] 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 de ejemplo
Causa
Si la política Extract Variables no tiene el elemento <JSONPath>
dentro del elemento <JSONPayload>
, la implementación del proxy de API fallará y se mostrará el error de arriba.
Diagnóstico
Identifica la política Extract Variables que ha fallado en el 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 XML de la política Extract Variables que ha fallado, determina si hay un elemento
<JSONPayload>
sin el elemento secundario obligatorio<JSONPath>
. Si es así, esa es la causa del error.Por ejemplo, a continuación se muestra una política Extract Variables que tiene el 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>
Como no hay ningún elemento secundario
<JSONPath>
definido en el elemento<JSONPayload>
, la implementación del proxy de API falla.
Resolución
Asegúrate de que la política Extract 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
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] 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 de ejemplo
Causa
Si la política Extract Variables tiene una expresión <JSONPath>
vacía en el elemento <JSONPayload>
, la implementación del proxy de API falla.
Diagnóstico
Identifica la política Extract Variables que ha fallado en el 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 XML de la política Extract Variables fallida, comprueba si hay un elemento
<JSONPayload>
con un elemento secundario<JSONPath>
vacío. Si es así, esa es la causa del error.Por ejemplo, a continuación se muestra una política Extract 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>
Como hay un elemento
<JSONPath>
vacío dentro del elemento<JSONPayload>
, no se puede implementar el proxy de API.
Resolución
Asegúrate de que la política Extract Variables tenga un elemento <JSONPath>
no vacío 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
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: - 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 de ejemplo
Causa
Si la política Extract Variables no tiene el atributo name
en ninguno de los elementos de la política, como QueryParam
, Header
, FormParam
o Variable
, donde es obligatorio, se producirá un error en la implementación del proxy de API.
Por ejemplo, este error se produce si falta el atributo name
en un elemento Variable
.
Diagnóstico
Identifica el nombre de la política Extract Variables en la que se ha producido el error y el elemento en el que 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 Extract Variables que ha fallado, comprueba que todos los elementos con el nombre determinado en el paso 1 tengan un atributo
name
. Si falta el atributo name en algún elemento, ese es el motivo del error.Por ejemplo, la siguiente política Extract Variables tiene definido el elemento
<Variable>
:<?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 la implementación del proxy de API falla.
Resolución
Asegúrate de que la política Extract Variables contenga el atributo name
obligatorio 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
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] 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 de ejemplo
Causa
Si la política Extract Variables no tiene ninguna variable especificada en el elemento <Pattern>
, la implementación del proxy de API fallará. 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 Extract Variables en la que se ha producido 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 Extract Variables que ha fallado, compruebe que el patrón definido en el elemento
<Pattern>
coincide con el patrón identificado en el mensaje de error (paso 1 anterior). Por ejemplo, la siguiente política especifica un patrón/a/b
, que coincide con lo que aparece en el mensaje de error:Por ejemplo, a continuación se muestra una política Extract 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 escribirse 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 que la implementación del proxy de API falla.<Pattern ignoreCase="true">/a/b/</Pattern>
Resolución
Asegúrate de que todos los elementos <Pattern>
incluyan 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
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 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 de ejemplo
Causa
Si la política Extract Variables tiene una expresión <XPath>
en la que el tipo <Variable>
se define como nodeset, pero la expresión no se puede convertir en nodeset, se produce un error al desplegar el proxy de API.
Diagnóstico
Identifica la política Extract Variables en la que se ha producido el error y el XPath que no se puede convertir en un conjunto de nodos. 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 el 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 Extract Variables que ha fallado, compruebe que el XPath definido en el elemento
<XPath>
coincide con el XPath identificado en el mensaje de error (paso 1 anterior). Por ejemplo, la siguiente política especificacomo 123
, que coincide con lo que se indica en 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 del elemento
<Variable>
correspondiente al<XPath>
identificado en el paso 2 anterior. Si el tipo<Variable>
esnodeset
, esa es la causa del error.Ten en cuenta que la expresión
<XPath>
es123
en la política Extract Variables de ejemplo.<XPath>123</XPath>
La expresión
123
no se puede convertir en un conjunto de nodos. Por lo tanto, el despliegue del proxy de API falla.
Resolución
Asegúrate de que las expresiones <XPath>
que se usan en la política Extraer 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
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 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 de 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
, de la política Extract Variables, se producirá un error al implementar el proxy de API.
Diagnóstico
Identifica la política Extract Variables que falla a partir 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 Extract Variables que ha fallado, compruebe si alguno de estos elementos está presente e incluya un elemento
<Pattern>
:URIPath
,QueryParam
,Header
,FormParam
,XMLPayload
oJSONPayload
.Por ejemplo, aquí tienes una política Extract Variables con un elemento
<Pattern>
dentro de un 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>
Consulta la definición de cada uno de los elementos
<Pattern>
. Si hay algún elemento<Pattern>
con una definición no válida, ese es el motivo del error.En el ejemplo de política Extract Variables que se muestra arriba, observa que la definición de
<Pattern>
dentro del elemento<QueryParam>
no es válida. Por lo tanto, la implementación del proxy de API falla. Consulta también Información sobre la creación de variables y la coincidencia.<Pattern ignoreCase="true">{*}</Pattern>
Resolución
Comprueba que la definición del elemento <Pattern>
en los elementos URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
o JSONPayload
de la política Extract 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 Información sobre la creación de variables y la coincidencia.
XPathCompilationFailed
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 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 de ejemplo
Causa
Si el prefijo o el valor usado en el elemento <XPath>
no forma parte de ninguno de los espacios de nombres declarados en la política Extract Variables, se producirá un error al implementar el proxy de API.
Puedes consultar más información sobre los espacios de nombres, XPath y los prefijos en el artículo Espacios de nombres XML y cómo afectan a XPath y XSLT.
Diagnóstico
Identifica la política Extract Variables en la que se ha producido el error y el XPath que no se ha podido 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 el 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 Extract Variables que ha fallado, compruebe que el XPath definido en el elemento
<XPath>
coincide con el XPath identificado en el mensaje de error (paso 1 anterior). Por ejemplo, la siguiente política especificacomo /apigee:Directions/apigee:route/apigee:leg/apigee:name
, que coincide con lo que se indica en 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>
de la política Extract Variables. Si el<XPath>
específico indicado en el mensaje de error usa un prefijo o un valor que no forma parte de los espacios de nombres declarados en la política Extraer variables, esa es la causa del error.Observe que el
<XPath>
específico usa el prefijoapigee
en la política de ejemplo Extraer variables.<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
Sin embargo, el prefijo
apigee
no se ha definido en ninguno de los elementos<Namespace>
, por lo que la compilación de<XPath>
falla y se produce un error en la implementación.
Resolución
Asegúrate de que todos los espacios de nombres que se usen en los elementos <XPath>
se declaren en la política Extract 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>