Fehlerbehebung bei der Bereitstellung von Richtlinien für das Extrahieren von Variablen

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

NothingToExtract

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 2.

Ursache

Wenn die Richtlinie für das Extrahieren von Variablen keines der Elemente URIPath, QueryParam, Header, FormParam, XMLPayload oder JSONPayload enthält, schlägt die Bereitstellung des API-Proxys fehl, denn es gibt nichts zu extrahieren.

Wie in der Fehlermeldung angegeben, muss die Richtlinie für das Extrahieren von Variablen mindestens eines der folgenden Elemente in der Richtlinie enthalten: URIPath, QueryParam, Header, FormParam, XMLPayload oder JSONPayload.

Diagnose

Sehen Sie sich die in der Fehlermeldung genannte Richtlinie für das Extrahieren von Variablen an. Wenn die Richtlinie keines der Elemente URIPath, QueryParam, Header, FormParam, XMLPayload oder JSONPayload enthält, ist dies die Ursache des Fehlers. Die folgende Richtlinie für das Extrahieren von Variablen enthält beispielsweise keines der oben genannten Elemente:

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

Da keines der erforderlichen Elemente in der Richtlinie für das Extrahieren von Variablen vorhanden ist, schlägt die Bereitstellung des API-Proxys fehl.

Lösung

Achten Sie darauf, dass die Richtlinie für das Extrahieren von Variablen mindestens eines dieser erforderlichen Elemente enthält: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload. Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 3.

Ursache

Dieser Fehler tritt auf, wenn in der Richtlinie für das Extrahieren von Variablen ein Präfix im Element <Namespace> unter dem Element <XMLPayload>, aber kein URI definiert ist.

Diagnose

  1. Ermitteln Sie die Richtlinie für das Extrahieren von Variablen, in der der Fehler aufgetreten ist, sowie den Namen des Präfixes. Sie finden beides in der Fehlermeldung. Bei dem folgenden Fehler lautet der Richtlinienname beispielsweise EV-XML-Age und das Präfix ist apigee:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. Überprüfen Sie in der XML-Datei der fehlgeschlagenen Richtlinie für das Extrahieren von Variablen, ob der Name des Präfixes, der im Element <Namespace> unter dem Element <XMLPayload> festgelegt ist, mit dem Präfixnamen aus der Fehlermeldung übereinstimmt (Schritt 1). In der folgenden Richtlinie ist beispielsweise ein Präfix namens apigee im Element <Namespace> angegeben, das mit dem Inhalt der Fehlermeldung übereinstimmt:

    <?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. Prüfen Sie, ob das <Namespace>-Element mit dem in Schritt 2 angegebenen Präfix einen gültigen URI hat. Wenn der URI fehlt, ist dies die Ursache des Fehlers.

    Beachten Sie, dass in der oben aufgeführten Beispielrichtlinie für das Extrahieren von Variablen kein URI vorhanden ist, das dem Element <Namespace> mit dem Präfix apigee entspricht. Daher wird folgende Fehlermeldung angezeigt:

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

Lösung

Achten Sie darauf, dass alle <Namespace>-Elemente, für die ein Präfix definiert ist, in der Richtlinie für das Extrahieren von Variablen einen entsprechenden URI haben. Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 2.

Ursache

Dieser Fehler tritt auf, wenn in der Richtlinie für das Extrahieren von Variablen im Element <Namespace> unter dem Element <XMLPayload> dasselbe Präfix mehrmals definiert ist.

Dieser Fehler tritt beispielsweise auf, weil das Präfix apigee wie unten zu sehen zweimal definiert ist:

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

Diagnose

  1. Ermitteln Sie die Richtlinie für das Extrahieren von Variablen, in der der Fehler aufgetreten ist, sowie den Namen des Präfixes. Sie finden beides in der Fehlermeldung. Bei dem folgenden Fehler lautet der Richtlinienname beispielsweise EV-XML-Age und das Präfix ist apigee:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. Überprüfen Sie in der XML-Datei der fehlgeschlagenen Richtlinie für das Extrahieren von Variablen, ob der Name des Präfixes, der im Element <Namespace> unter dem Element <XMLPayload> festgelegt ist, mit dem Präfixnamen aus der Fehlermeldung übereinstimmt (Schritt 1). In der folgenden Richtlinie ist beispielsweise ein Präfix namens apigee im Element <Namespace> angegeben, das mit dem Inhalt der Fehlermeldung übereinstimmt:

    <?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. Ermitteln Sie, ob das <Namespace>-Element mit dem in Schritt 2 angegebenen Präfix mehr als einmal definiert wurde. Wenn es mehrmals definiert ist, ist dies die Ursache des Fehlers.

    Beachten Sie in der oben angegebenen Richtlinie für das Extrahieren von Variablen, dass das Element <Namespace> mit dem Präfix apigee zweimal definiert wurde. Daher wird folgende Fehlermeldung angezeigt:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
    

Lösung

Achten Sie darauf, dass in der Richtlinie für das Extrahieren von Variablen für jedes Präfix in den <Namespace>-Elementen nur eine Definition vorhanden ist. Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Revision 4.

Ursache

Wenn die Richtlinie für das Extrahieren von Variablen nicht das Element <XPath> im Element <XMLPayload> enthält, schlägt die Bereitstellung des API-Proxys mit dem oben gezeigten Fehler fehl.

Diagnose

  1. Ermitteln Sie die fehlgeschlagene Richtlinie für das Extrahieren von Variablen aus der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise Extract-Variables-1.

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Prüfen Sie in der XML-Richtlinie zu fehlgeschlagenen Variablen, ob ein <XMLPayload>-Element ohne das untergeordnete <XPath>-Element vorhanden ist. Wenn ja, ist dies die Ursache des Fehlers.

    Das folgende Beispiel zeigt eine Richtlinie für das Extrahieren von Variablen mit einem <XMLPayload>-Element:

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

    Da kein <XPath>-Element vorhanden ist, schlägt die Bereitstellung des API-Proxys fehl.

Lösung

Achten Sie darauf, dass in der Richtlinie für das Extrahieren von Variablen ein <XPath>-Element unter dem Element <XMLPayload> definiert ist. Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Überarbeitung 6

Ursache

Wenn die Richtlinie für das Extrahieren von Variablen im Element <XMLPayload> einen leeren <XPath>-Ausdruck enthält, schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Ermitteln Sie die fehlgeschlagene Richtlinie für das Extrahieren von Variablen aus der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise Extract-Variables-1.

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Ermitteln Sie in der Richtlinien-XML-Datei zum Extrahieren von Variablen, ob ein <XMLPayload>-Element mit einem leeren <XPath>-Element vorhanden ist. Wenn ja, ist dies die Ursache des Fehlers.

    Das folgende Beispiel zeigt eine Richtlinie für das Extrahieren von Variablen mit einem <XMLPayload>-Element:

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

    Da im Element <XMLPayload> ein leeres <XPath>-Element vorhanden ist, schlägt die Bereitstellung des API-Proxys fehl.

Lösung

Achten Sie darauf, dass in der Richtlinie für das Extrahieren von Variablen ein nicht leeres und gültiges <XPath>-Element unter dem Element <XMLPayload> definiert ist. Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Überarbeitung 6

Ursache

Wenn die Richtlinie für das Extrahieren von Variablen nicht das Element <JSONPath> im Element <JSONPayload> enthält, schlägt die Bereitstellung des API-Proxys mit dem oben gezeigten Fehler fehl.

Diagnose

  1. Ermitteln Sie die fehlgeschlagene Richtlinie für das Extrahieren von Variablen aus der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise Extract-Variables-1.

    ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
    
  2. Ermitteln Sie in der Richtlinien-XML-Datei zum Extrahieren von Variablen, ob ein <JSONPayload>-Element ohne das erforderliche untergeordnete <JSONPath>-Element vorhanden ist. Wenn ja, ist dies die Ursache des Fehlers.

    Das folgende Beispiel zeigt eine Richtlinie für das Extrahieren von Variablen mit dem Element <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>
    

    Da unter dem Element <JSONPayload> kein untergeordnetes Element <JSONPath> definiert ist, schlägt die Bereitstellung des API-Proxys fehl.

Lösung

Achten Sie darauf, dass in der Richtlinie für das Extrahieren von Variablen ein <JSONPath>-Element unter dem Element <JSONPayload> definiert ist. Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Überarbeitung 6

Ursache

Wenn die Richtlinie für das Extrahieren von Variablen im Element <JSONPayload> einen leeren <JSONPath>-Ausdruck enthält, schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Ermitteln Sie die fehlgeschlagene Richtlinie für das Extrahieren von Variablen aus der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise Extract-Variables-1.

    ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
    
  2. Überprüfen Sie in der XML-Datei mit den fehlgeschlagenen Extrahieren von Variablen, ob ein <JSONPayload>-Element mit einem leeren, untergeordneten <JSONPath>-Element vorliegt. Wenn ja, ist dies die Ursache des Fehlers.

    Das folgende Beispiel zeigt eine Richtlinie für das Extrahieren von Variablen mit einem <JSONPayload>-Element:

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

    Da im Element <JSONPayload> ein leeres <JSONPath>-Element vorhanden ist, schlägt die Bereitstellung des API-Proxys fehl.

Lösung

Achten Sie darauf, dass in der Richtlinie für das Extrahieren von Variablen ein nicht leeres und gültiges <JSONPath>-Element unter dem Element <JSONPayload> definiert ist. Beispiel:

<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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Überarbeitung 6

Ursache

Wenn in der Richtlinie für das Extrahieren von Variablen das Attribut name in keinem der Richtlinienelemente wie QueryParam, Header, FormParam oder Variable vorhanden ist, obwohl es dort erforderlich ist, dann schlägt die Bereitstellung des API-Proxys fehl.

Dieser Fehler tritt beispielsweise auf, wenn in einem Variable-Element das Attribut name fehlt.

Diagnose

  1. Ermitteln Sie den Namen der Richtlinie für das Extrahieren von Variablen, in der der Fehler aufgetreten ist, sowie das Element, in dem das Attribut name fehlt. Sie finden diese Angaben in der Fehlermeldung. Bei folgendem Fehler lautet der Richtlinienname beispielsweise Extract-Variables-1 und der Elementname ist Variable:

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. Prüfen Sie in der XML-Datei zur Richtlinie für das Extrahieren von Variablen, ob alle Elemente mit dem in Schritt 1 ermittelten Namen ein name-Attribut haben. Wenn ein Element vorhanden ist, bei dem das Namensattribut fehlt, ist dies die Ursache des Fehlers.

    In der folgenden Richtlinie für das Extrahieren von Variablen ist beispielsweise das Element <Variable> definiert:

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

    Beachten Sie, dass das name-Attribut im Variable-Element fehlt. Damit schlägt die Bereitstellung des API-Proxys fehl.

Lösung

Die Richtlinie für das Extrahieren von Variablen muss für die Elemente QueryParam, Header, FormParam oder Variable das erforderliche Attribut name enthalten. Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Speichern von Überarbeitung 7

Ursache

Wenn in der Richtlinie für das Extrahieren von Variablen im Element <Pattern> keine Variable angegeben ist, schlägt die Bereitstellung des API-Proxys fehl. Das Element <Pattern> erfordert den Namen der Variablen, in der extrahierte Daten gespeichert werden.

Diagnose

  1. Ermitteln Sie den Namen der Richtlinie für das Extrahieren von Variablen, in der der Fehler aufgetreten ist, sowie das Muster, für das die Variable fehlt. Sie finden diese Angaben in der Fehlermeldung. Bei folgendem Fehler lautet der Richtlinienname beispielsweise Extract-Variables-1 und der Elementname ist /a/b:

    Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
    
  2. Überprüfen Sie in der XML-Datei zur Richtlinie für das Extrahieren von Variablen, ob das im Element <Pattern> festgelegte Muster mit dem in der Fehlermeldung angegebenen Muster übereinstimmt (Schritt 1). In der folgenden Richtlinie ist beispielsweise das Muster /a/b angegeben, das mit dem Muster in der Fehlermeldung übereinstimmt:

    Das folgende Beispiel zeigt eine Richtlinie für das Extrahieren von Variablen mit drei <Pattern>-Elementen:

    <?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. Prüfen Sie, ob das in Schritt 2 ermittelte Element <Pattern> keine Variable hat. Variablen müssen in geschweifte Klammern gesetzt sein. Wenn das Muster keine Variable hat, ist dies die Ursache des Fehlers.

    Das Element <Pattern> mit dem Muster /a/b enthält keine Variable. Deshalb schlägt die Bereitstellung des API-Proxys fehl.

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

Lösung

Achten Sie darauf, dass alle <Pattern>-Elemente eine Variable enthalten (ein Name in geschweiften Klammern). Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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.

Beispiel-Screenshot

Fehler beim Bereitstellen von Überarbeitung 4 zum Testen

Ursache

Wenn die Richtlinie für das Extrahieren von Variablen den <XPath>-Ausdruck enthält, bei dem der <Variable>-Typ als nodeset definiert ist, der Ausdruck jedoch nicht nach "nodeset" konvertiert werden kann, dann schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Ermitteln Sie die Richtlinie für das Extrahieren von Variablen, in der der Fehler aufgetreten ist, sowie den XPath, der nicht nach "nodeset" konvertiert werden kann. Sie finden beides in der Fehlermeldung. Bei dem folgenden Fehler lautet der Richtlinienname beispielsweise Extract-Variables-1 und der XPath ist 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. Überprüfen Sie in der XML-Datei zur Richtlinie für das Extrahieren von Variablen, ob der im Element <XPath> festgelegte XPath mit dem in der Fehlermeldung angegebenen XPath übereinstimmt (Schritt 1). In der folgenden Richtlinie ist der beispielsweise als 123 angegeben, was dem XPath in der Fehlermeldung entspricht:

    <?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. Sehen Sie sich den Typ des Elements <Variable> an, das dem in Schritt 2 angegebenen <XPath> entspricht. Wenn der <Variable>-Typ nodeset ist, ist dies die Ursache des Fehlers.

    Der Ausdruck <XPath> ist in der Richtlinie für das Extrahieren von Variablen aus dem Beispiel 123.

    <XPath>123</XPath>
    

    Der Ausdruck 123 kann nicht nach "nodeset" konvertiert werden. Die Bereitstellung des API-Proxys schlägt also fehl.

Lösung

Achten Sie darauf, dass die <XPath>-Ausdrücke, die in der Richtlinie für das Extrahieren von Variablen verwendet werden, nach "nodeset" konvertiert werden können, wenn der Typ <Variable> als "nodeset" definiert ist. Beispiel:

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

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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

Beispiel-Screenshot

Fehler beim Bereitstellen von Überarbeitung 18 zum Testen

Ursache

Wenn die Definition des <Pattern>-Elements in einem der Elemente wie URIPath, QueryParam, Header, FormParam, XMLPayload oder JSONPayload in der Richtlinie für das Extrahieren von Variablen ungültig ist, dann schlägt die Bereitstellung des API-Proxys fehl.

Diagnose

  1. Ermitteln Sie die fehlgeschlagene Richtlinie für das Extrahieren von Variablen aus der Fehlermeldung. Im folgenden Fehler lautet der Richtlinienname beispielsweise Extract-Variables-2:

    Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
    
  2. Prüfen Sie in der XML-Datei der fehlgeschlagenen Richtlinie für das Extrahieren von Variablen, ob eines dieser Elemente vorhanden ist und sie ein <Pattern>-Element enthalten: URIPath, QueryParam, Header, FormParam, XMLPayload oder JSONPayload.

    Das folgende Beispiel zeigt eine Richtlinie für das Extrahieren von Variablen mit einem <Pattern>-Element im Element <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. Sehen Sie sich die Definition der einzelnen <Pattern>-Elemente an. Wenn ein <Pattern>-Element mit einer ungültigen Definition vorliegt, ist dies die Ursache des Fehlers.

    Beachten Sie in der oben gezeigten Beispielrichtlinie für das Extrahieren von Variablen, dass die Definition von <Pattern> im <QueryParam>-Element ungültig ist. Deshalb schlägt die Bereitstellung des API-Proxys fehl. Siehe auch Informationen zum Abgleichen und zum Erstellen von Variablen

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

Lösung

Achten Sie darauf, dass die Definition des Elements <Pattern> in den Elementen URIPath, QueryParam, Header, FormParam, XMLPayload und JSONPayload in der Richtlinie für das Extrahieren von Variablen gültig ist. Beispiel:

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

Siehe auch Informationen zum Abgleichen und zum Erstellen von Variablen

XPathCompilationFailed

Fehlermeldung

Die Bereitstellung des API-Proxys über die Apigee-Benutzeroberfläche oder die API schlägt mit der folgenden Fehlermeldung fehl:

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

Beispiel für Fehlermeldung

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.

Beispiel-Screenshot

Fehler beim Bereitstellen von Version 1 zum Testen.

Ursache

Wenn das Präfix oder der Wert, das im <XPath>-Element verwendet wird, nicht Teil des in der Richtlinie für das Extrahieren von Variablen deklarierten Namespaces ist, schlägt die Bereitstellung des API-Proxys fehl.

Weitere Informationen zu Namespaces, XPath und Präfixen finden Sie unter XML-Namespaces und ihre Auswirkung auf XPath und XSLT.

Diagnose

  1. Ermitteln Sie die Richtlinie für das Extrahieren von Variablen, in der der Fehler aufgetreten ist, sowie den XPath, der nicht kompiliert werden konnte. Sie finden beides in der Fehlermeldung. Bei dem folgenden Fehler lautet der Richtlinienname beispielsweise EV-XML-Age und der XPath ist /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. Überprüfen Sie in der XML-Datei zur Richtlinie für das Extrahieren von Variablen, ob der im Element <XPath> festgelegte XPath mit dem in der Fehlermeldung angegebenen XPath übereinstimmt (Schritt 1). In der folgenden Richtlinie ist der beispielsweise als /apigee:Directions/apigee:route/apigee:leg/apigee:name angegeben, was dem XPath in der Fehlermeldung entspricht:

    <?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. Sehen Sie sich die Elemente <Namespaces> und <XPath> in der Richtlinie für das Extrahieren von Variablen an. Wenn der in der Fehlermeldung angegebene <XPath> ein Präfix oder einen Wert verwendet, das bzw. der nicht Teil des in der Richtlinie für das Extrahieren von Variablen deklarierten Namespaces ist, ist dies die Ursache des Fehlers.

    Beachten Sie, dass der spezifische <XPath> in der Richtlinie für das Extrahieren von Variablen das Präfix apigee verwendet.

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

    Das Präfix apigee ist jedoch in keinem der <Namespace>-Elemente definiert. Daher führt das Kompilieren von <XPath> zu einem Fehler bei der Bereitstellung.

Lösung

Achten Sie darauf, dass alle Namespaces, die in <XPath>-Elementen verwendet werden, in der Richtlinie für das Extrahieren von Variablen deklariert sind. Beispiel:

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