Solución de problemas de error de implementación de la política de extracción de variable

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

NothingToExtract

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 el siguiente 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

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 el siguiente 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

  1. 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 es apigee:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. 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 llamado apigee 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>
    
  3. 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 prefijo apigee. 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&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError=>"<;false">; enabled=<"true&q>uot; <name="EV-XML-Age">
    Di<splayNa>meEV-<XML-Age/DisplayName
    Source clearPayl>oad=&<quot;false>"req<uest/Source
    XMLPayloa>d stopPayloadProcessi<ng="f>alse"<;
    Namespaces
       > Namespace prefix=&quo<t;apigee&q>uot;ht<tp://www.ap>igee.<com/Namespace
        Namespace prefi>x="g<mail&>quot;http://mail.google.com/Namespace
     /Namespaces<
    V>ariab<le name=&>quot;<legName&quo>t<; type="stri>ng"
        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 IU de Edge o de la API de Edge Management falla y muestra el siguiente 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="ap>igee"http://www.<apigee.com>/<Namespace
Namespace prefi>x="apigee"h<ttp://www.>apigee.com/Namespace

Diagnóstico

  1. 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 es apigee:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. 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 llamado apigee en el elemento <Namespace>, que coincide con el contenido del mensaje de error:

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    ExtractVariables async="false" continueOnError=>"<;false">; enabled=<"true&q>uot; <name="EV-XML-Age">
        Di<splayNa>meEV-<XML-Age/DisplayName
        Source clearPayl>oad=&qu<ot;false&q>uot;request</Source
        XMLPayload s>topPayloadProcessing=&<quot;false>"
        <  Namespaces
              Na>mespace prefix="<gmail">;http://mai<l.google.com/Namespace
      >        Namespace pre<fix=">apigee&<quot;http:/>/www.ap<igee.com/Namespace
              Namespace prefix=&<quot;>apigee"http://www.apigee.com/Namespace
          /Nam<espace>s
         < Variable> name<="legN>ame<" type=">;string
              XPath/apigee:Directions/apigee:route/apigee:leg/apigee:name/XPath
          /Variable
        /XMLPayload
      /ExtractVariables
    
  3. 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 prefijo apigee 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&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError=>"<;false">; enabled=<"true&q>uot; <name="EV-XML-Age">
    Di<splayNa>meEV-<XML-Age/DisplayName
    Source clearPayl>oad=&qu<ot;false&q>uot;request</Source
    XMLPayload st>opPayloadProcessing=&<quot;false>"
    <  Namespaces
          N>amespace prefix="<apigee&quo>t;http:<//www.apige>e.com/N<amespace
          Namespace prefix=&>quot;gmail&<quot;>http://mail.google.com/Namespace
      /Namespaces
   <   Var>iable n<ame=">;legN<ame" t>y<pe="string&q>uot;
          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 IU de Edge o de la API de Edge Management falla y muestra el siguiente 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

  1. 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.
    
  2. 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&quo>t<; standalone="yes"?
    ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
        DisplayNameExtract V>ariable<s-1/Dis>playN<ame
        Proper>ties/
    <    Source clea>rPayl<oad="false"request/Source
        >VariableP<refixapigee>/Variable<Prefix
        XMLPayload stopPayloadProcessing=>"fal<se"<>/span>
         <   Namespac>e<s/
            Variab>le 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&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
    DisplayNameExtract V>ariable<s-1/Dis>playN<ame
    Proper>ties/
<    Source clea>rPayl<oad="false"request/Source
    >VariableP<refixapigee>/Variable<Prefix
    XMLPayload stopPayloadProcessing=>"false&q<uot;<>/span>
        Name<spaces>/
       < Variable> name<="Host>R<eachable" ty>pe="boolean"
            XPath/isReachable/XPath
        /Variable
    /XMLPayload
/ExtractVariables

EmptyXPathExpression

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 el siguiente 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

  1. 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.
    
  2. 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&quo>t<; standalone="yes"?
    ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
        DisplayNameExtract V>ariable<s-1/Dis>playN<ame
        Proper>ties/
    <    Source clea>rPayl<oad="false"request/Source
        >VariableP<refixapigee>/Variable<Prefix
        XMLPayload stopPayloadProc>essing="<false><">
            <Namespace>s/
      <      Varia>b<le name="add>ress" 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&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
    DisplayNameExtract V>ariable<s-1/Dis>playN<ame
    Proper>ties/
<    Source clea>rPayl<oad="false"request/Source
    >VariableP<refixapigee>/Variable<Prefix
    XMLPayload stopPayloadProc>essing="<false>"
 <      > Namespac<es/
     >   Va<riable name>=<"address&quo>t; type="string"
            XPath/address/XPath
        /Variable
    /XMLPayload
/ExtractVariables

NoJSONPathsToEvaluate

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 el siguiente 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

  1. 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.
    
  2. 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&quo>t<; standalone="yes"?
    ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
        Disp>layNameEx<tract Variables-1/Dis>playName
    <    Prope>rties</
        JSONPa>yload<
            Variable name=&quo>t;title<"<>/span>
         <   /Variable
     >   /JS<ONPayload
        S>o<urce clearPayload>="false"request/Source
        VariablePrefixapigee/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&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
    Disp>layNameEx<tract Variables-1/Dis>playName
    <Properti>es/
    JSON<Payload
 >       Va<riable na>me=&q<uot;title&qu>ot;
 <           JSONPath$.book.t>itle/JS<ONPath<>/span>
     <   /Variable
 >   /JS<ONPayload
    S>o<urce clearPayload>="false"request/Source
    VariablePrefixapigee/VariablePrefix
/ExtractVariables

EmptyJSONPathExpression

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 el siguiente 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

  1. 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.
    
  2. 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&qu>ot; name=<"Extra>ct-Variables-1"<;
            Di>splayName<Extract Var>iables-1/<DisplayName>
            Prop<erties/
            JSONPayload
                Varia>ble name="ac<count_nu><mber">; type="<integer&q>uot;
        <            >JSONPath/<JSONPath
                /Varia>ble
       <     /J>SONPayloa<d
            Sour>ce cle<arPayload=">;fals<e"request/So>urce
            VariablePrefixapigee/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&qu>ot; n<ame="E>xtract-Variables-1&<quot;
    Di>splay<NameExtract> Vari<ables-1/Dis>playName
<    Properties/
    JSONPayload
        Varia>ble name=&qu<ot;accou>nt_number" <type=&quo>t;integer<"
  >     <    JSONPath>$.acc<ount.number/JSONPath
      >  /Vari<able
  >  /JS<ONPayload
    >Source< clearPayload=&>q<uot;false"re>quest/Source
    VariablePrefixapigee/VariablePrefix
/ExtractVariables

MissingName

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 el siguiente 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

  1. 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 es Extract-Variables-1 y el nombre del elemento es Variable:

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. 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&quo>t<; standalone="yes"?
    ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
        DisplayNameExtra>ct Variab<les-1/D>isplayName
        Pr<operties>/
       < Variable> <type="boolea>n"
            Pattern{isAccountActive}/Pattern
        /Variable
    /ExtractVariables
    

    Observa que falta el atributo name en el elemento Variable, 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&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
    DisplayNameExtract Variables-1/Display>Name
    <Propert>ies/
    Variable< name=&q>uot;a<ccount_ac>t<ive" type=&q>uot;boolean"
        Pattern{isAccountActive}/Pattern
    /Variable
/ExtractVariables

PatternWithoutVariable

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 el siguiente 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

  1. 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.
    
  2. 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&quo>t<; standalone="yes"?
    ExtractVaria>bles< name=>"E<xtractV>aria<bles-1&>quot;
     <  Sourcerequest/Source
      > URIPath
       <   Patte>rn igno<reCase="true"/a>/{pat<hSeg}/Pa>ttern
     <     Pattern ignoreCase=&>quot;true"/<a/b//Pat>tern<
          P>atte<rn ignoreCase=>"true<"/a/b/c/{p>a<thSeg}/Pattern
      > /URIPath
       VariablePrefixurirequest/VariablePrefix
    /ExtractVariables
    
  3. 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&<quot;/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&quo>t<; standalone="yes"?
ExtractVaria>bles< name=>"E<xtractV>aria<bles-1&>quot;
 <  Sourcerequest/Source
  > URIPath
   <   Patte>rn igno<reCase="true"/a>/{pathSeg}/Pat<tern
   >   Patt<ern ignoreCase="true>"/a/b/{path<Seg}/Pat>tern<
      P>atte<rn ignoreCase=>"true<"/a/b/c/{p>a<thSeg}/Pattern
  > /URIPath
   VariablePrefixurirequest/VariablePrefix
/ExtractVariables

CannotBeConvertedToNodeset

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 el siguiente 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 conjunto de nodos, pero la expresión no se puede convertir en el conjunto de nodos, la implementación de la API de proxy falla.

Diagnóstico

  1. 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 es 123.

    ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
    
  2. 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 especifica como 123, que coincide con lo que contiene el mensaje de error:

    <?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
    ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
        DisplayNameExtract V>ariable<s-1/Dis>playN<ame
        Proper>ties/
     <   Source clear>Paylo<ad="false"request/Source
        V>ariablePr<efixvisitor>/Variable<Prefix
        XMLPayload stopPayloadP>rocessing=&qu<ot;fa>lse<">
            <Namespace>s/
      <      Varia>b<le name="age>&quot; type="nodeset"
                XPath123/XPath
            /Variable
        /XMLPayload
    /ExtractVariables
    
  3. Examina el tipo de elemento <Variable> correspondiente al <XPath> identificado en el paso 2. Si el elemento <Variable> es nodeset, esa es la causa del error.

    Observa que la expresión <XPath> es 123 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&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
    DisplayNameExtract V>ariable<s-1/Dis>playN<ame
    Proper>ties/
 <   Source clear>Paylo<ad="false"request/Source
    V>ariablePr<efixvisitor>/Variable<Prefix
    XMLPayload stopPayloadP>rocessing=&qu<ot;fa>lse"
  <      >Namespace<s/
      >  Var<iable name=>&<quot;age" ty>pe="nodeset"
            XPath/visitor/age/XPath
        /Variable
    /XMLPayload
/ExtractVariables

InvalidPattern

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 el siguiente 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

  1. 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.
    
  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 o JSONPayload.

    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&quo>t<; standalone="yes"?
    ExtractVaria>bles <name=">ExtractVariables-2<"
        D>ispla<yNameE>xtractV<ariable>s-2/D<isplayName
        Sourcer>equest/So<urce
        QueryParam name=>&qu<ot;code&>quot;<
            Pa>ttern< ignoreCase=&q>uot;true&<quot;{*}/Patter>n<
        /QueryParam
    >    VariablePrefixqueryinfo/VariablePrefix
    /ExtractVariables
    
  3. 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=">tru<e"{>*}/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&quo>t<; standalone="yes"?
ExtractVaria>bles <name=">ExtractVariables-2"
    DisplayNa<meExtract a >value< from >a query< parame>ter/D<isplayName
    Sourcer>equest/So<urce
    QueryParam name=>"<code&quo>t;
  <      Patte>rn ig<noreCase=">;true&quo<t;{code}/Patter>n<
    /QueryParam
>    VariablePrefixqueryinfo/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 Edge Management 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

  1. 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.
    
  2. 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 especifica como /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&quo>t<; standalone="yes"?
    ExtractVariables async="false" continueOnError=>&qu<ot;false&qu>ot; enable<d="true>&qu<ot; name="EV-XML-Age&q>uot;
      <Display>Nam<eEV-XML-Age/DisplayName
      Source clearPa>yload<="fal>se"r<equest/Source
      XMLPaylo>ad stopPayloadProcessi<ng="f>alse&<quot;
        N>amesp<aces
            Namespace prefix="g>mail&<quot;>http://mail.google.com/Namespace
        /Namespaces
        V<ariabl>e name=&q<uot;legNa>me&<quot; type=>&<quot;string">
        XPath/apigee:Directions/apigee:route/apigee:leg/apigee:name/XPath
            /Variable
      /XMLPayload
    /ExtractVariables
    
  3. 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 prefijo apigee 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&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError=>&qu<ot;false&qu>ot; enable<d="true>&qu<ot; name="EV-XML-Age&q>uot;
  <Display>Nam<eEV-XML-Age/DisplayName
  Source clearPa>yload<="fal>se"r<equest/Source
  XMLPayloa>d stopPayloadProcessi<ng="f>alse"<;
    Namespaces
       > Namespace prefix=&quo<t;apigee&q>uot;h<ttp://www.a>pigee<.com/Namespace
        Namespace pref>ix="<gmail>"http://mail.google.com/Namespace
    /Namespaces<
    V>ariab<le name=&>quo<t;legName&q>u<ot; type="st>ring"
        XPath/apigee:Directions/apigee:route/apigee:leg/apigee:name/XPath
    /Variable
  /XMLPayload
/ExtractVariables