Dépannage des erreurs de déploiement de la règle d'extraction de variables ExtractVariables

Vous consultez la documentation d'Apigee et d'Apigee hybrid.
Consultez la documentation d'Apigee Edge.

NothingToExtract

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l'enregistrement de la révision 2.

Cause

Si la règle d'extraction de variables ExtractVariables ne comporte aucun des éléments URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload, le déploiement du proxy d'API échoue, car il n'y a rien à extraire.

Comme indiqué dans le message d'erreur, la règle d'extraction de variables ExtractVariables doit inclure au moins l'un des éléments suivants dans la règle : URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload.

Diagnostic

Examinez la règle d'extraction de variables ExtractVariables nommée dans le message d'erreur. Si la règle ne comporte pas l'un des éléments suivants : URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload, cela est la cause de l'erreur. Par exemple, la règle d'extraction de variables ExtractVariables suivante ne comporte aucun des éléments mentionnés ci-dessus :

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

Comme aucun des éléments obligatoires n'est présent dans la règle d'extraction de variables ExtractVariables, le déploiement du proxy d'API échoue.

Solution

Vérifiez que la règle d'extraction de variables ExtractVariables comporte au moins l'un des éléments obligatoires suivants : URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload. Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 3.

Cause

Cette erreur se produit si la règle d'extraction de variables ExtractVariables comporte un préfixe défini dans l'élément <Namespace> sous l'élément <XMLPayload>, mais qu'aucun URI n'est défini.

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables où l'erreur s'est produite, ainsi que le nom du préfixe. Ces deux éléments se trouvent dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est EV-XML-Age et le préfixe est apigee :

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables, vérifiez que le nom du préfixe défini dans l'élément <Namespace> sous l'élément <XMLPayload> correspond au nom de préfixe identifié dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante spécifie un préfixe nommé apigee dans l'élément <Namespace>, qui correspond au contenu du message d'erreur :

    <?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. Validez si l'élément <Namespace> avec le préfixe spécifique identifié à l'étape 2 possède un URI valide. Si l'URI est manquant, il s'agit de la cause de l'erreur.

    Dans l'exemple de règle d'extraction de variables ExtractVariables présenté ci-dessus, notez qu'aucun URI ne correspond à l'élément <Namespace> portant le préfixe apigee. Vous obtenez donc l'erreur suivante :

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

Solution

Assurez-vous que tous les éléments <Namespace> définis avec un préfixe ont un URI correspondant dans la règle d'extraction de variables ExtractVariables. Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 2.

Cause

Cette erreur se produit si la règle d'extraction de variables ExtractVariables comporte le même préfixe défini plus d'une fois dans l'élément <Namespace> sous l'élément <XMLPayload>.

Par exemple, cette erreur se produit lorsque le préfixe apigee est défini deux fois, comme indiqué ci-dessous :

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

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables où l'erreur s'est produite, ainsi que le nom du préfixe. Ces deux éléments se trouvent dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est EV-XML-Age et le préfixe est apigee :

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables, vérifiez que le nom du préfixe défini dans l'élément <Namespace> sous l'élément <XMLPayload> correspond au nom de préfixe identifié dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante spécifie un préfixe nommé apigee dans l'élément <Namespace>, qui correspond au contenu du message d'erreur :

    <?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. Déterminez si l'élément <Namespace> avec le préfixe spécifique, identifié à l'étape 2, a été défini plus d'une fois. S'il est défini plus d'une fois, alors il s'agit de la cause de l'erreur.

    Dans l'exemple de règle d'extraction de variables ExtractVariables présenté ci-dessus, notez que l'élément <Namespace> portant le préfixe apigee a été défini deux fois. Par conséquent, vous obtenez l'erreur suivante :

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
    

Solution

Vérifiez qu'il n'y a qu'une définition pour chaque préfixe dans les éléments <Namespace> de la règle d'extraction de variables ExtractVariables. Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 4.

Cause

Si la règle d'extraction de variables ExtractVariables ne dispose pas de l'élément <XPath> dans l'élément <XMLPayload>, le déploiement du proxy d'API échoue avec l'erreur ci-dessus.

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables ayant échoué à partir du message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est Extract-Variables-1 :

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, vérifiez s'il existe un élément <XMLPayload> sans l'élément enfant <XPath>. Si c'est le cas, alors il s'agit de la cause de l'erreur.

    Par exemple, voici une règle d'extraction de variables ExtractVariables contenant un élément <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>
    

    Comme aucun élément <XPath> n'est présent, le déploiement du proxy d'API échoue.

Solution

Vérifiez que la règle d'extraction de variables ExtractVariables possède un élément <XPath> défini sous l'élément <XMLPayload>. Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 6.

Cause

Si la règle d'extraction de variables ExtractVariables comporte une expression <XPath> vide dans l'élément <XMLPayload>, le déploiement du proxy d'API échoue.

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables ayant échoué à partir du message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est Extract-Variables-1 :

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, déterminez s'il existe un élément <XMLPayload> avec un élément enfant <XPath> vide. Si c'est le cas, alors il s'agit de la cause de l'erreur.

    Par exemple, voici une règle d'extraction de variables ExtractVariables contenant un élément <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>
    

    Comme un élément <XPath> est vide dans l'élément <XMLPayload>, le déploiement du proxy d'API échoue.

Solution

Vérifiez que la règle d'extraction de variables ExtractVariables possède un élément <XPath> non vide et valide défini sous l'élément <XMLPayload>. Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 6.

Cause

Si la règle d'extraction de variables ExtractVariables ne dispose pas de l'élément <JSONPath> dans l'élément <JSONPayload>, le déploiement du proxy d'API échoue avec l'erreur ci-dessus.

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables ayant échoué à partir du message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est Extract-Variables-1 :

    ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, déterminez s'il existe un élément <JSONPayload> sans l'élément enfant <JSONPath> requis. Si c'est le cas, alors il s'agit de la cause de l'erreur.

    Par exemple, voici une règle d'extraction de variables ExtractVariables contenant un élément <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>
    

    Comme aucun élément enfant <JSONPath> n'est défini sous l'élément <JSONPayload>, le déploiement du proxy d'API échoue.

Solution

Vérifiez que la règle d'extraction de variables ExtractVariables possède un élément <JSONPath> défini sous l'élément <JSONPayload>. Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 6.

Cause

Si la règle d'extraction de variables ExtractVariables comporte une expression <JSONPath> vide dans l'élément <JSONPayload>, le déploiement du proxy d'API échoue.

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables ayant échoué à partir du message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est Extract-Variables-1 :

    ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, vérifiez s'il existe un élément <JSONPayload> avec un élément enfant <JSONPath> vide. Si c'est le cas, alors il s'agit de la cause de l'erreur.

    Par exemple, voici une règle d'extraction de variables ExtractVariables contenant un élément <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>
    

    Comme un élément <JSONPath> est vide dans l'élément <JSONPayload>, le déploiement du proxy d'API échoue.

Solution

Vérifiez que la règle d'extraction de variables ExtractVariables possède un élément <JSONPath> non vide et valide défini sous l'élément <JSONPayload>. Exemple :

<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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 6.

Cause

Si la règle d'extraction de variables ExtractVariables n'a pas d'attribut name dans les éléments de règle tels que QueryParam, Header, FormParam ou Variable (le cas échéant), le déploiement du proxy d'API échoue.

Par exemple, cette erreur se produit si l'attribut name est manquant dans un élément Variable.

Diagnostic

  1. Identifiez le nom de la règle d'extraction de variables ExtractVariables où l'erreur s'est produite, ainsi que l'élément pour lequel l'attribut name est manquant. Ces éléments figurent dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est Extract-Variables-1 et le nom de l'élément est Variable :

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, vérifiez que tous les éléments dont le nom est déterminé à l'étape 1 ci-dessus possèdent un attribut name. Si un attribut de nom est manquant dans l'un des éléments, il s'agit de la cause de l'erreur.

    Par exemple, l'élément <Variable> est défini dans la règle d'extraction de variables ExtractVariables suivante :

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

    Notez que l'attribut name est manquant dans l'élément Variable. Par conséquent, le déploiement du proxy d'API échoue.

Solution

Vérifiez que la règle d'extraction de variables ExtractVariables contient l'attribut name requis pour les éléments QueryParam, Header, FormParam ou Variable. Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors de l&#39;enregistrement de la révision 7.

Cause

Si la règle Extraire les variables ne comporte pas de variable spécifiée dans l'élément <Pattern>, le déploiement du proxy d'API échoue. L'élément <Pattern> requiert le nom de la variable dans laquelle les données extraites seront stockées.

Diagnostic

  1. Identifiez le nom de la règle Extraire les variables où l'erreur s'est produite et le modèle pour lequel la variable est manquante. Ces données figurent dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la stratégie est Extract-Variables-1 et le nom de l'élément /a/b :

    Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, vérifiez que le modèle défini dans l'élément <Pattern> correspond au modèle identifié dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante spécifie un modèle /a/b qui correspond au contenu du message d'erreur :

    Par exemple, voici une règle d'extraction de variables ExtractVariables comportant trois éléments <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>
    
  3. Vérifiez que l'élément <Pattern> identifié à l'étape 2 ne contient pas de variable. Les variables doivent être placées entre accolades. Si le modèle n'a pas de variable, il s'agit de la cause de l'erreur.

    L'élément <Pattern> ayant le modèle /a/b n'inclut pas de variable. Par conséquent, le déploiement du proxy d'API échoue.

    <Pattern ignoreCase="true">/a/b/</Pattern>
    
    

Solution

Vérifiez que tous les éléments <Pattern> incluent une variable (un nom placé entre accolades). Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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.

Exemple de capture d'écran

Erreur lors du déploiement de la révision 4 sur &quot;test&quot;.

Cause

Si la règle d'extraction de variables ExtractVariables contient une expression <XPath> où le type <Variable> est défini sur nodeset, mais que l'expression ne peut pas être convertie en ensemble de nœuds, le déploiement du proxy d'API échoue.

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables où l'erreur s'est produite et le chemin XPath ne pouvant pas être converti en ensemble de nœuds. Ces deux éléments se trouvent dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est Extract-Variables-1 et le chemin XPath est 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. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, vérifiez que le chemin XPath défini dans l'élément <XPath> correspond au chemin XPath identifié dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante spécifie en tant que 123, qui correspond au contenu du message d'erreur :

    <?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>
    
  3. Examinez le type d'élément <Variable> correspondant à l'élément <XPath> identifié à l'étape 2 ci-dessus. Si le type <Variable> est nodeset, il s'agit de la cause de l'erreur.

    Notez que l'expression <XPath> est 123 dans l'exemple de règle d'extraction de variables ExtractVariables.

    <XPath>123</XPath>
    

    L'expression 123 ne peut pas être convertie en ensemble de nœuds. Par conséquent, le déploiement du proxy d'API échoue.

Solution

Vérifiez que les expressions <XPath> utilisées dans la règle d'extraction de variables ExtractVariables peuvent être converties en ensemble de nœuds si le type <Variable> est défini en tant qu'ensemble de nœuds. Exemple :

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

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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

Exemple de capture d'écran

Erreur lors du déploiement de la révision 18 sur &quot;test&quot;.

Cause

Si la définition de l'élément <Pattern> est non valide dans les éléments tels que URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload dans la règle d'extraction de variables ExtractVariables, le déploiement du proxy d'API échoue.

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables défaillante à partir du message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est Extract-Variables-2 :

    Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
    
  2. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, vérifiez si l'un de ces éléments est présent et inclut un élément <Pattern> : URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload.

    Voici un exemple de règle d'extraction de variables ExtractVariables avec un élément <Pattern> dans un élément <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>
    
  3. Examinez la définition de chacun des éléments <Pattern>. Si un élément <Pattern> contient une définition non valide, il s'agit de la cause de l'erreur.

    Dans l'exemple de règle d'extraction de variables ExtractVariables présenté ci-dessus, notez que la définition <Pattern> dans l'élément <QueryParam> est non valide. Le déploiement du proxy d'API échoue alors. Vous pouvez également vous référer à la section À propos de la mise en correspondance et de la création de variables.

    <Pattern ignoreCase="true">{*}</Pattern>
    
    

Solution

Vérifiez que la définition de l'élément <Pattern> dans les éléments URIPath, QueryParam, Header, FormParam, XMLPayload ou JSONPayload de la règle d'extraction de variables ExtractVariables est valide. Exemple :

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

Vous pouvez également vous référer à la section À propos de la mise en correspondance et de la création de variables.

XPathCompilationFailed

Message d'erreur

Le déploiement du proxy d'API par le biais de l'interface utilisateur ou l'API Apigee échoue avec le message d'erreur suivant :

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

Exemple de message d'erreur

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.

Exemple de capture d'écran

Erreur lors du déploiement de la révision 1 sur &quot;test&quot;.

Cause

Si la valeur ou le préfixe utilisé dans l'élément <XPath> ne fait pas partie des espaces de noms déclarés dans la règle d'extraction de variables ExtractVariables, le déploiement du proxy d'API échoue.

Pour en savoir plus sur les espaces de noms, les chemins XPath et le préfixe, reportez-vous à la section Les espaces de noms XML et comment ils affectent XPath et XHTML.

Diagnostic

  1. Identifiez la règle d'extraction de variables ExtractVariables où l'erreur s'est produite et le chemin XPath qui n'a pas pu être compilé. Ces deux éléments se trouvent dans le message d'erreur. Par exemple, dans l'erreur suivante, le nom de la règle est EV-XML-Age et le chemin XPath est /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. Dans le XML de la règle d'extraction de variables ExtractVariables ayant échoué, vérifiez que le chemin XPath défini dans l'élément <XPath> correspond au chemin XPath identifié dans le message d'erreur (étape 1 ci-dessus). Par exemple, la règle suivante spécifie en tant que /apigee:Directions/apigee:route/apigee:leg/apigee:name, qui correspond au contenu du message d'erreur :

    <?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>
    
  3. Examinez les éléments <Namespaces> et <XPath> de la règle d'extraction de variables ExtractVariables. Si le chemin <XPath> spécifique indiqué dans le message d'erreur utilise un préfixe ou une valeur qui ne fait pas partie des espaces de noms déclarés dans la règle d'extraction de variables ExtractVariables, cela est la cause de l'erreur.

    Notez que le chemin <XPath> spécifique utilise le préfixe apigee dans l'exemple de règle d'extraction de variables ExtractVariables.

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

    Cependant, le préfixe apigee n'est défini dans aucun des éléments <Namespace>. Par conséquent, la compilation de <XPath> échoue, ce qui entraîne l'échec du déploiement.

Solution

Vérifiez que tous les espaces de noms utilisés dans les éléments <XPath> sont déclarés dans la règle d'extraction de variables ExtractVariables. Exemple :

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