Solução de problemas de erros na implantação da política Extract Variables

Esta é a documentação do Apigee Edge.
Acesse Documentação da Apigee X.
informações

NothingToExtract

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.

Captura de tela de exemplo

Causa

Se a política não tiver os elementos URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload, a implantação do API Proxy falhará , porque não há nada para extrair.

Como indicado na mensagem de erro, a política precisa ter pelo menos um destes elementos incluídos na política: URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload

Diagnóstico

Analise a política nomeada na mensagem de erro. Se a política não tiver ainda um dos seguintes elementos: URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload, essa é a causa do erro. Por exemplo, a seguinte política não tem nenhum dos elementos mencionados acima:

<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
    <DisplayName>EV-XML-Age</DisplayName>
    <Properties/>
</ExtractVariables>

Como nenhum dos elementos obrigatórios está presente na política Extract Variables, a implantação do proxy da API falha.

Resolução

Verifique se a política tem pelo menos um destes elementos obrigatórios: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload. Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.

Exemplo de mensagem de erro

Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.

Captura de tela de exemplo

Causa

Esse erro ocorrerá se a política de variáveis de extração tiver um prefixo definido no elemento <Namespace> no elemento <XMLPayload>, mas nenhum URI for definido.

Diagnóstico

  1. Identifique a política de variáveis de extração em que o erro ocorreu e o nome do prefixo. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir , o nome da política é EV-XML-Age e o prefixo é apigee:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. No XML de política de extração de variáveis com falha, verifique se o nome do prefixo definido no elemento <Namespace> no elemento <XMLPayload> corresponde ao nome do prefixo identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica um prefixo chamado apigee no elemento <Namespace>, que corresponde ao que está na mensagem de erro:

    <?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. Valide se o elemento <Namespace> com o prefixo específico identificado na etapa 2 tem um URI válido. Se o URI estiver ausente, essa é a causa do erro.

    No exemplo de política de extração de variáveis mostrado acima, observe que não há URI correspondente ao elemento <Namespace> com o prefixo apigee; Portanto, você receberá o erro:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
    

Resolução

Verifique se todos os elementos <Namespace> definidos com um prefixo têm um URI correspondente na política de variáveis de extração. Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: Duplicate prefix [prefix_name].

Exemplo de mensagem de erro

Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.

Captura de tela de exemplo

Causa

Esse erro ocorrerá se a política de variáveis de extração tiver o mesmo prefixo definido mais de uma vez no elemento <Namespace>, no elemento <XMLPayload>.

Por exemplo, esse erro ocorre porque o prefixo apigee é definido duas vezes, conforme mostrado abaixo:

<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>

Diagnóstico

  1. Identifique a política de variáveis de extração em que o erro ocorreu e o nome do prefixo. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é EV-XML-Age e o prefixo é apigee:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. No XML de política de extração de variáveis com falha, verifique se o nome do prefixo definido no elemento <Namespace> no elemento <XMLPayload> corresponde ao nome do prefixo identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica um prefixo chamado apigee no elemento <Namespace>, que corresponde ao que está na mensagem de erro:

    <?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>
    
  3. Determine se o elemento <Namespace> com o prefixo específico, identificado na etapa 2, foi definido mais de uma vez. Se ela for definida mais de uma vez, essa é a causa do erro.

    No exemplo de política de extração de variáveis mostrado acima, observe que o elemento <Namespace> com o prefixo apigee foi definido duas vezes; Portanto, você receberá o erro:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
    

Resolução

Verifique se há apenas uma definição para cada prefixo nos elementos <Namespace> da política de variáveis de extração. Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]:no xpaths to evaluate in variable name.

Exemplo de mensagem de erro

Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.

Captura de tela de exemplo

Causa

Se a política de variáveis de extração não tiver o elemento <XPath> no elemento <XMLPayload>, a implantação do proxy de API falhará com o erro mostrado acima.

Diagnóstico

  1. Identifique a política de extração de variáveis com falha da mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Extract-Variables-1.

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. No XML de política de extração de variáveis com falha, verifique se há um elemento <XMLPayload> sem o elemento filho <XPath>. Em caso afirmativo, essa é a causa do erro.

    Por exemplo, veja uma política de variáveis de extração que tem um 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 não há elemento <XPath>, a implantação do API Proxy falha.

Resolução

Verifique se a política de variáveis de extração tem um elemento <XPath> definido no elemento <XMLPayload>. Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: XPath expression is empty in variable name.

Exemplo de mensagem de erro

Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.

Captura de tela de exemplo

Causa

Se a política de variáveis de extração tiver uma expressão <XPath> vazia no elemento <XMLPayload>, a implantação do proxy de API falhará.

Diagnóstico

  1. Identifique a política de extração de variáveis com falha da mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Extract-Variables-1:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. No XML da política de extração de variáveis com falha, determine se há um elemento <XMLPayload> com um elemento filho <XPath> vazio. Em caso afirmativo, essa é a causa do erro.

    Por exemplo, veja uma política de variáveis de extração que tem um 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
    

    Como há um elemento <XPath> vazio no elemento <XMLPayload>, a implantação do API Proxy falha.

Resolução

Verifique se a política de variáveis de extração tem um elemento <XPath> não vazio e válido definido no elemento <XMLPayload>. Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.

Exemplo de mensagem de erro

Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.

Captura de tela de exemplo

Causa

Se a política de variáveis de extração não tiver o elemento <JSONPath> dentro do elemento <JSONPayload>, a implantação do proxy de API falhará com o erro mostrado acima.

Diagnóstico

  1. Identifique a política de extração de variáveis com falha da mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Extract-Variables-1:

    ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
    
  2. No XML da política de extração de variáveis com falha, determine se há um elemento <JSONPayload> sem o elemento filho <JSONPath> necessário. Em caso afirmativo, essa é a causa do erro.

    Por exemplo, veja uma política de variáveis de extração que tem o 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
    

    Como não há nenhum elemento filho <JSONPath> definido no elemento <JSONPayload>, a implantação do API Proxy falha.

Resolução

Verifique se a política de variáveis de extração tem um elemento <JSONPath> definido no elemento <JSONPayload>. Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: JSONPath expression is empty in variable name.

Exemplo de mensagem de erro

Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.

Captura de tela de exemplo

Causa

Se a política de variáveis de extração tiver uma expressão <JSONPath> vazia no elemento <JSONPayload>, a implantação do proxy de API falhará.

Diagnóstico

  1. Identifique a política de extração de variáveis com falha da mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Extract-Variables-1:

    ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
    
  2. No XML da política de extração de variáveis com falha, verifique se há um elemento <JSONPayload> com um elemento filho <JSONPath> vazio. Em caso afirmativo, essa é a causa do erro.

    Por exemplo, veja uma política de variáveis de extração que tem um 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
    

    Como há um elemento <JSONPath> vazio no elemento <JSONPayload>, a implantação do API Proxy falha.

Resolução

Verifique se a política de variáveis de extração tem um elemento <JSONPath> não vazio e válido definido no elemento <JSONPayload>. Por exemplo:

<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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision [revision_number]
Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]

Exemplo de mensagem de erro

Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable

Captura de tela de exemplo

Causa

Se a política de variáveis de extração não tiver o atributo name em nenhum dos elementos de política, como QueryParam, Header, FormParam ou Variable, quando necessário, a implantação de o proxy da API falhará.

Por exemplo, este erro ocorrerá se o atributo name estiver ausente em um elemento Variable.

Diagnóstico

  1. Identifique o nome da política de variáveis de extração em que o erro ocorreu e o elemento no qual o atributo name está ausente. Você encontra esses itens na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Extract-Variables-1 e o nome do elemento é Variable:

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. No XML da política de extração de variáveis com falha, verifique se todos os elementos com o nome determinado na etapa 1 acima têm um atributo name. Se houver algum elemento em que o atributo de nome esteja ausente, essa é a causa do erro.

    Por exemplo, a seguinte política de variáveis de extração tem o 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
    

    Observe que o atributo name está ausente no elemento Variable, então a implantação do API Proxy falha.

Resolução

Verifique se a política de variáveis de extração contém o atributo name obrigatório para os elementos QueryParam, Header, FormParam ou Variable. Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Saving Revision [revision_number]
Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]

Exemplo de mensagem de erro

Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.

Captura de tela de exemplo

Causa

Se a política de variáveis de extração não tiver uma variável especificada no elemento <Pattern>, a implantação do proxy de API falhará. O elemento <Pattern> requer o nome da variável em que os dados extraídos serão armazenados.

Diagnóstico

  1. Identifique o nome da política de variáveis de extração em que o erro ocorreu e o padrão no qual a variável está ausente. Você pode encontrar esses itens na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Extract-Variables-1 e o nome do elemento é /a/b:

    Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
    
  2. No XML da política de extração com falha, verifique se o padrão definido no elemento <Pattern> corresponde ao padrão identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica um padrão /a/b, que corresponde ao que está na mensagem de erro:

    Por exemplo, veja uma política de variáveis de extração que tem três 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. Verifique se o elemento <Pattern> identificado na etapa 2 não tem uma variável. As variáveis precisam ser colocadas entre chaves. Se o padrão não tiver uma variável, essa é a causa do erro.

    O elemento <Pattern> que tem o padrão /a/b não inclui uma variável. Portanto, a implantação do proxy da API falha

    <Pattern ignoreCase=">true&<quot;/a/>b//Pattern
    
    

Resolução

Garanta que todos os elementos <Pattern> incluam uma variável (um nome entre chaves). Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

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

Exemplo de mensagem de erro

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 tela de exemplo

Causa

Se a política de variáveis de extração tiver uma expressão <XPath> em que o tipo <Variable> é definido como nodeset, mas a expressão não puder ser convertida em nodeset, a implantação do proxy de API falhará.

Diagnóstico

  1. Identifique a política de extração de variáveis em que o erro ocorreu e o XPath que não pode ser convertido para o conjunto de nós. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir , o nome da política é Extract-Variables-1 e o XPath é 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. No XML da política de extração com falha, verifique se o XPath definido no elemento <XPath> corresponde ao XPath identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica o como 123, que corresponde ao que está na mensagem de erro:

    <?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. Examine o tipo do elemento <Variable> correspondente ao <XPath> identificado na etapa 2 acima. Se o tipo <Variable> for nodeset, essa é a causa do erro.

    A expressão <XPath> é 123 no exemplo da política de variáveis de extração.

    <XPath>123</XPath>
    

    A expressão 123 não pode ser convertida em nodeset. Portanto, a implantação do proxy de API falha.

Resolução

As expressões <XPath> usadas na política de variáveis de extração podem ser convertidas em nodeset se o tipo <Variable> estiver definido como nodeset. Por exemplo:

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

Mensagem de erro

A implantação do proxy de API pela interface ou pela API Edge Management falha com esta mensagem de erro:

Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]

Exemplo de mensagem de erro

Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.

Captura de tela de exemplo

Causa

Se a definição do elemento <Pattern> for inválida em qualquer um dos elementos como URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload na política de extração de variáveis, a implantação do proxy de API falhará.

Diagnóstico

  1. Identifique a política com falha de variáveis de extração na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é Extract-Variables-2:

    Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
    
  2. No XML da política de extração de variáveis com falha, verifique se algum destes elementos está presente e inclua um elemento <Pattern>: URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload.

    Por exemplo, veja um exemplo de política de extração de variáveis com um elemento <Pattern> dentro do 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. Examine a definição de cada um dos elementos <Pattern>. Se houver algum elemento <Pattern> com uma definição inválida, essa é a causa do erro.

    No exemplo de política de extração de variáveis mostrado acima, observe que a definição <Pattern> no elemento <QueryParam> é inválida. Portanto, a implantação do proxy da API falha. Consulte também Sobre a correspondência e a criação de variáveis.

    <Pattern ignoreCase=">tru<e"{>*}/Pattern
    
    

Resolução

A definição do elemento <Pattern> nos elementos URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload na política de extração de variáveis é válida. Exemplo:

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

Consulte também Sobre a correspondência e a criação de variáveis

XPathCompilationFailed

Mensagem de erro

Falha na implantação do proxy de API pela interface do Edge ou pela API Edge Management por esta mensagem de erro:

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

Exemplo de mensagem de erro

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 tela de exemplo

Causa

Se o prefixo ou o valor usado no elemento <XPath> não fizer parte de nenhum dos namespaces declarados na política de extração de variáveis, a implantação do proxy de API falhará.

Veja mais informações sobre namespaces, XPath e prefixo em Namespaces XML e como eles afetam o XPath e o GQL.

Diagnóstico

  1. Identifique a política de variáveis de extração em que o erro ocorreu e o caminho que não pôde ser compilado. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir , o nome da política é EV-XML-Age e o xpath é /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. No XML da política de extração com falha, verifique se o XPath definido no elemento <XPath> corresponde ao XPath identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica o como /apigee:Directions/apigee:route/apigee:leg/apigee:name, que corresponde ao que está na mensagem de erro:

    <?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. Analise os elementos <Namespaces> e <XPath> na política de extração de variáveis. Se o <XPath> específico indicado na mensagem de erro usar um prefixo ou valor que não faz parte dos namespaces declarados na política de extração de variáveis, essa é a causa do erro.

    Observe que a <XPath> específica usa o prefixo apigee na política de exemplo de variáveis de extração.

    <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
    

    No entanto, o prefixo apigee não está definido em nenhum dos elementos <Namespace>; Portanto, a compilação de <XPath> falha devido a uma falha de implantação.

Resolução

Verifique se todos os namespaces usados nos elementos <XPath> estão declarados na política de variáveis de extração. Por exemplo:

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