Risoluzione dei problemi relativi agli errori di deployment dei criteri Estrazione variabili

Stai visualizzando la documentazione di Apigee e Apigee hybrid.
Visualizza la documentazione di Apigee Edge.

NothingToExtract

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 2.

Causa

Se il criterio di estrazione delle variabili non contiene nessuno degli elementi URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload, il deployment del proxy API non va a buon fine perché non c'è nulla da estrarre.

Come indicato nel messaggio di errore, il criterio Estrazione variabili deve includere almeno uno di questi elementi: URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload.

Diagnosi

Esamina il criterio Estrai variabili denominato nel messaggio di errore. Se il criterio non contiene nemmeno uno dei seguenti elementi: URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload, è questa la causa dell'errore. Ad esempio, il seguente criterio Estrazione variabili non contiene nessuno degli elementi sopra menzionati:

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

Poiché nessuno degli elementi obbligatori è presente nel criterio Estrai variabili, il deployment del proxy API non va a buon fine.

Risoluzione

Assicurati che il criterio Estrai variabili contenga almeno uno di questi elementi obbligatori: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload. Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 3.

Causa

Questo errore si verifica se il criterio Estrazione variabili ha un prefisso definito nell'elemento <Namespace> all'interno dell'elemento <XMLPayload>, ma non è definito alcun URI.

Diagnosi

  1. Identifica il criterio Estrazione variabili in cui si è verificato l'errore e il nome del prefisso. Puoi trovare entrambi questi elementi nel messaggio di errore. Ad esempio, nell'errore seguente , il nome del criterio è EV-XML-Age e il prefisso è apigee:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, verifica che il nome del prefisso impostato nell'elemento <Namespace> sotto l'elemento <XMLPayload> corrisponda al nome del prefisso identificato nel messaggio di errore (passaggio 1 sopra). Ad esempio, il seguente criterio specifica un prefisso denominato apigee nell'elemento <Namespace> , che corrisponde a quello indicato nel messaggio di errore:

    <?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. Verifica se l'elemento <Namespace> con il prefisso specifico identificato nel passaggio 2 ha un URI valido. Se l'URI non è presente, è la causa dell'errore.

    Nell'esempio di norma Estrazione variabili mostrato sopra, tieni presente che non esiste un URI corrispondente all'elemento <Namespace> con il prefisso apigee. Di conseguenza, viene visualizzato l'errore:

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

Risoluzione

Assicurati che tutti gli elementi <Namespace> definiti con un prefisso abbiano un URI corrispondente nel criterio Estrai variabili. Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 2.

Causa

Questo errore si verifica se il criterio Estrazione variabili ha lo stesso prefisso definito più di una volta nell'elemento <Namespace> all'interno dell'elemento <XMLPayload>.

Ad esempio, questo errore si verifica perché il prefisso apigee è definito due volte, come mostrato di seguito:

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

Diagnosi

  1. Identifica il criterio Estrazione variabili in cui si è verificato l'errore e il nome del prefisso. Puoi trovare entrambi questi elementi nel messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio è EV-XML-Age e il prefisso è apigee:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, verifica che il nome del prefisso impostato nell'elemento <Namespace> sotto l'elemento <XMLPayload> corrisponda al nome del prefisso identificato nel messaggio di errore (passaggio 1 sopra). Ad esempio, il seguente criterio specifica un prefisso denominato apigee nell'elemento <Namespace> , che corrisponde a quello indicato nel messaggio di errore:

    <?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. Determina se l'elemento <Namespace> con il prefisso specifico identificato nel passaggio 2 è stato definito più di una volta. Se è definito più di una volta, questa è la causa dell'errore.

    Nell'esempio di criteri di estrazione delle variabili mostrato sopra, tieni presente che l'elemento <Namespace> con il prefisso apigee è stato definito due volte. Di conseguenza, viene visualizzato l'errore:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
    

Risoluzione

Assicurati che esista una sola definizione per ogni prefisso negli elementi <Namespace> del criterio Estrai variabili. Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 4.

Causa

Se il criterio Estrazione variabili non contiene l'elemento <XPath> all'interno dell'elemento <XMLPayload>, il deployment del proxy API non va a buon fine e viene visualizzato l'errore riportato sopra.

Diagnosi

  1. Identifica il criterio Estrazione variabili non riuscito dal messaggio di errore. Ad esempio, nel seguente errore, il nome del criterio è Extract-Variables-1:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, controlla se è presente un elemento <XMLPayload> senza l'elemento secondario <XPath>. In questo caso, è la causa dell'errore.

    Ad esempio, ecco un criterio Estrazione variabili con un elemento <XMLPayload>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
        <XMLPayload stopPayloadProcessing="false">
            <Namespaces/>
            <Variable name="HostReachable" type="boolean">
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    Poiché non è presente alcun elemento <XPath>, il deployment dell'API Proxy non va a buon fine.

Risoluzione

Assicurati che il criterio Estrai variabili abbia un elemento <XPath> definito nell'elemento <XMLPayload>. Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 6.

Causa

Se il criterio Estrazione variabili contiene un'espressione <XPath> vuota all'interno dell'elemento <XMLPayload>, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il criterio Estrazione variabili non riuscito dal messaggio di errore. Ad esempio, nel seguente errore, il nome del criterio è Extract-Variables-1:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, determina se è presente un elemento <XMLPayload> con un elemento secondario <XPath> vuoto. In questo caso, è la causa dell'errore.

    Ad esempio, ecco un criterio Estrazione variabili con un elemento <XMLPayload>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
        <XMLPayload stopPayloadProcessing="false">
            <Namespaces/>
            <Variable name="address" type="string">
                <XPath></XPath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    Poiché all'interno dell'elemento <XMLPayload> è presente un elemento <XPath> vuoto, il deployment del proxy API non va a buon fine.

Risoluzione

Assicurati che il criterio Estrai variabili abbia un elemento <XPath> non vuoto e valido definito nell'elemento <XMLPayload>. Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 6.

Causa

Se il criterio Estrazione variabili non contiene l'elemento <JSONPath> all'interno dell'elemento <JSONPayload>, il deployment del proxy API non va a buon fine e viene visualizzato l'errore riportato sopra.

Diagnosi

  1. Identifica il criterio Estrazione variabili non riuscito dal messaggio di errore. Ad esempio, nel seguente errore, il nome del criterio è Extract-Variables-1:

    ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, determina se è presente un elemento <JSONPayload> senza l'elemento secondario <JSONPath> obbligatorio. In questo caso, è la causa dell'errore.

    Ad esempio, ecco un criterio Estrazione variabili che contiene l'elemento <JSONPayload>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <JSONPayload>
            <Variable name="title">
            </Variable>
        </JSONPayload>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
    </ExtractVariables>
    

    Poiché non è definito alcun elemento secondario <JSONPath> nell'elemento <JSONPayload>, il deployment dell'API Proxy non va a buon fine.

Risoluzione

Assicurati che il criterio Estrai variabili abbia un elemento <JSONPath> definito nell'elemento <JSONPayload>. Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 6.

Causa

Se il criterio Estrazione variabili contiene un'espressione <JSONPath> vuota all'interno dell'elemento <JSONPayload>, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il criterio Estrazione variabili non riuscito dal messaggio di errore. Ad esempio, nel seguente errore, il nome del criterio è Extract-Variables-1:

    ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, verifica se è presente un elemento <JSONPayload> con un elemento secondario <JSONPath> vuoto. In questo caso, è la causa dell'errore.

    Ad esempio, ecco un criterio Estrazione variabili con un elemento <JSONPayload>:

        <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
            <DisplayName>Extract Variables-1</DisplayName>
            <Properties/>
            <JSONPayload>
                <Variable name="account_number" type="integer">
                    <JSONPath></JSONPath>
                </Variable>
            </JSONPayload>
            <Source clearPayload="false">request</Source>
            <VariablePrefix>apigee</VariablePrefix>
        </ExtractVariables>
    

    Poiché all'interno dell'elemento <JSONPayload> è presente un elemento <JSONPath> vuoto, il deployment del proxy API non va a buon fine.

Risoluzione

Assicurati che il criterio Estrai variabili abbia un elemento <JSONPath> non vuoto e valido definito nell'elemento <JSONPayload>. Ad esempio:

<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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 6.

Causa

Se il criterio di estrazione delle variabili non ha l'attributo name in nessuno degli elementi del criterio, come QueryParam, Header, FormParam o Variable, dove è richiesto, il deployment del proxy API non va a buon fine.

Ad esempio, questo errore si verifica se l'attributo name non è presente in un elemento Variable.

Diagnosi

  1. Identifica il nome del criterio Estrai variabili in cui si è verificato l'errore e l'elemento in cui manca l'attributo name. Puoi trovare questi elementi nel messaggio di errore. Ad esempio, nel seguente errore, il nome del criterio è Extract-Variables-1 e il nome dell'elemento è Variable:

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, verifica che tutti gli elementi con il nome determinato nel passaggio 1 sopra indicato abbiano un attributo name. Se manca l'attributo name in un elemento, questo è l'elemento che causa l'errore.

    Ad esempio, il seguente criterio Estrazione variabili ha definito l'elemento <Variable>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Variable type="boolean">
            <Pattern>{isAccountActive}</Pattern>
        </Variable>
    </ExtractVariables>
    

    Tieni presente che l'attributo name non è presente nell'elemento Variable, pertanto il deployment del proxy API non va a buon fine.

Risoluzione

Assicurati che il criterio Estrazione variabili contenga l'attributo name obbligatorio per gli elementi QueryParam, Header, FormParam o Variable. Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il salvataggio della revisione 7.

Causa

Se il criterio Estrazione variabili non ha una variabile specificata all'interno dell'elemento <Pattern>, il deployment del proxy API non va a buon fine. L'elemento <Pattern> richiede il nome della variabile in cui verranno archiviati i dati estratti.

Diagnosi

  1. Identifica il nome del criterio Estrazione variabili in cui si è verificato l'errore e il pattern per cui manca la variabile. Puoi trovare questi elementi nel messaggio di errore. Ad esempio, nel seguente errore, il nome del criterio è Extract-Variables-1 e il nome dell'elemento è /a/b:

    Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, verifica che il pattern impostato nell'elemento <Pattern> corrisponda a quello identificato nel messaggio di errore (passaggio 1 sopra). Ad esempio, il seguente criterio specifica un pattern /a/b che corrisponde a quello nel messaggio di errore:

    Ad esempio, ecco un criterio Estrazione variabili con tre elementi <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. Controlla se l'elemento <Pattern> identificato nel passaggio 2 non ha una variabile. Le variabili devono essere racchiuse tra parentesi graffe. Se il pattern non ha una variabile, è la causa dell'errore.

    L'elemento <Pattern> con il pattern /a/b non include una variabile; pertanto, il deployment dell'API Proxy non va a buon fine

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

Risoluzione

Assicurati che tutti gli elementi <Pattern> includano una variabile (un nome racchiuso tra parentesi graffe). Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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.

Screenshot di esempio

Errore durante il deployment della revisione 4 per il test.

Causa

Se il criterio Estrazione variabili contiene un'espressione <XPath> in cui il tipo <Variable> è definito come nodeset, ma l'espressione non può essere convertita in nodeset, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il criterio Estrai variabili in cui si è verificato l'errore e l'XPath che non può essere convertito in nodeset. Puoi trovare entrambi questi elementi nel messaggio di errore. Ad esempio, nell'errore seguente , il nome del criterio è Extract-Variables-1 e l'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. Nel file XML delle norme relative alle variabili di estrazione non riuscite, verifica che l'XPath impostato nell'elemento <XPath> corrisponda a quello identificato nel messaggio di errore (passaggio 1 sopra). Ad esempio, il seguente criterio specifica come 123, che corrisponde a quanto indicato nel messaggio di errore:

    <?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. Esamina il tipo di elemento <Variable> corrispondente a <XPath> identificato nel passaggio 2 riportato sopra. Se il tipo <Variable> è nodeset, è questa la causa dell'errore.

    Tieni presente che l'espressione <XPath> è 123 nel criterio Estrazione variabili di esempio.

    <XPath>123</XPath>
    

    L'espressione 123 non può essere convertita in nodeset. Di conseguenza, il deployment del proxy API non va a buon fine.

Risoluzione

Assicurati che le espressioni <XPath> utilizzate nel criterio Estrai variabili possano essere convertite in nodeset se il tipo <Variable> è definito come nodeset. Ad esempio:

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

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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

Screenshot di esempio

Errore durante il deployment della revisione 18 per il test.

Causa

Se la definizione dell'elemento <Pattern> non è valida in uno degli elementi come URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload all'interno del criterio Estrazione variabili, il deployment del proxy API non va a buon fine.

Diagnosi

  1. Identifica il criterio Estrazione variabili con errori dal messaggio di errore. Ad esempio, nel seguente errore, il nome del criterio è Extract-Variables-2:

    Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
    
  2. Nel file XML del criterio Estrazione variabili non riuscito, controlla se sono presenti uno di questi elementi e includi un elemento <Pattern>: URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload.

    Ad esempio, ecco un esempio di criterio Estrazione variabili con un elemento <Pattern> all'interno dell'elemento <QueryParam>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractVariables-2">
        <DisplayName>ExtractVariables-2</DisplayName>
        <Source>request</Source>
        <QueryParam name="code">
            <Pattern ignoreCase="true">{*}</Pattern>
        </QueryParam>
        <VariablePrefix>queryinfo</VariablePrefix>
    </ExtractVariables>
    
  3. Esamina la definizione di ciascuno degli elementi <Pattern>. Se è presente un elemento <Pattern> con una definizione non valida, questa è la causa dell'errore.

    Nell'esempio di criterio Estrazione variabili mostrato sopra, tieni presente che la definizione di <Pattern> all'interno dell'elemento <QueryParam> non è valida; pertanto, il deployment del proxy API non va a buon fine. Vedi anche Informazioni sulla corrispondenza e sulla creazione di variabili

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

Risoluzione

Assicurati che la definizione dell'elemento <Pattern> all'interno degli elementi URIPath, QueryParam, Header, FormParam, XMLPayload o JSONPayload nel criterio Estrai variabili sia valida. Ad esempio:

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

Vedi anche Informazioni sulla corrispondenza e sulla creazione di variabili

XPathCompilationFailed

Messaggio di errore

Il deployment del proxy API tramite l'API o l'interfaccia utente di Apigee non va a buon fine con questo messaggio di errore:

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

Esempio di messaggio di errore

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.

Screenshot di esempio

Errore durante il deployment della revisione 1 per il test.

Causa

Se il prefisso o il valore utilizzato nell'elemento <XPath> non fa parte di nessuno degli spazi dei nomi dichiarati nel criterio Estrazione variabili, il deployment del proxy API non va a buon fine.

Puoi trovare ulteriori informazioni su spazi dei nomi, XPath e prefisso in Spazi dei nomi XML e come influiscono su XPath e XSLT.

Diagnosi

  1. Identifica il criterio Estrai variabili in cui si è verificato l'errore e l'XPath che non è stato possibile compilare. Puoi trovare entrambi questi elementi nel messaggio di errore. Ad esempio, nell'errore seguente , il nome del criterio è EV-XML-Age e l'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. Nel file XML delle norme relative alle variabili di estrazione non riuscite, verifica che l'XPath impostato nell'elemento <XPath> corrisponda a quello identificato nel messaggio di errore (passaggio 1 sopra). Ad esempio, il seguente criterio specifica come /apigee:Directions/apigee:route/apigee:leg/apigee:name, che corrisponde a quanto indicato nel messaggio di errore:

    <?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. Esamina gli elementi <Namespaces> e <XPath> nel criterio Estrai variabili. Se il <XPath> specifico indicato nel messaggio di errore utilizza un prefisso o un valore che non fa parte degli spazi dei nomi dichiarati nel criterio Estrai variabili, questo è la causa dell'errore.

    Tieni presente che <XPath> specifico utilizza il prefisso apigee nel criterio Estrazione variabili di esempio.

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

    Tuttavia, il prefisso apigee non è definito in nessuno degli elementi <Namespace>. Di conseguenza, la compilazione di <XPath> non va a buon fine e causa un errore di deployment.

Risoluzione

Assicurati che tutti gli spazi dei nomi utilizzati negli elementi <XPath> siano dichiarati nel criterio di estrazione delle variabili. Ad esempio:

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