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
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
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
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 istapigee
:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Ü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 namensapigee
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>
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äfixapigee
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
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
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 istapigee
:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Ü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 namensapigee
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>
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äfixapigee
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
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
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.
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
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
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.
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
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
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.
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
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
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.
Ü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
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
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 beispielsweiseExtract-Variables-1
und der Elementname istVariable
:Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
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 imVariable
-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
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
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.
Ü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>
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
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
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 ist123
:ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
Ü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 derbeispielsweise 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>
Sehen Sie sich den Typ des Elements
<Variable>
an, das dem in Schritt 2 angegebenen<XPath>
entspricht. Wenn der<Variable>
-Typnodeset
ist, ist dies die Ursache des Fehlers.Der Ausdruck
<XPath>
ist in der Richtlinie für das Extrahieren von Variablen aus dem Beispiel123
.<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
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
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.
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
oderJSONPayload
.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>
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
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
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.
Ü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 derbeispielsweise 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>
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äfixapigee
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>