Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X. Informacje
NothingToExtract
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
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].
Przykładowy komunikat o błędzie
Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Przykładowy zrzut ekranu
Przyczyna
Jeśli zasada Wyodrębnianie zmiennych nie zawiera żadnych elementów URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ani JSONPayload
, wdrożenie serwera proxy interfejsu API nie powiedzie się, ponieważ nie ma niczego do wyodrębnienia.
Jak wskazujemy w komunikacie o błędzie, zasada Wyodrębnianie zmiennych musi zawierać co najmniej 1 z tych elementów: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
lub JSONPayload
.
Diagnostyka
Sprawdź zasadę Wyodrębniania zmiennych o nazwie podanej w komunikacie o błędzie. Jeśli zasada nie zawiera nawet jednego z tych elementów: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
lub JSONPayload
, jest to przyczyna błędu. Na przykład poniższe zasady „Wyodrębnianie zmiennych” nie zawierają żadnego z wymienionych powyżej elementów:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
</ExtractVariables>
Ponieważ zasada Wyodrębnianie zmiennych nie zawiera żadnego z wymaganych elementów, wdrożenie serwera proxy interfejsu API się nie uda.
Rozdzielczość
Upewnij się, że zasada Wyodrębnianie zmiennych zawiera co najmniej jeden z tych obowiązkowych elementów: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
, JSONPayload
. Na przykład:
<?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>
NONPusty przedrostek mapowany do pustego identyfikatora URI
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.
Przykładowy komunikat o błędzie
Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Przykładowy zrzut ekranu
Przyczyna
Ten błąd występuje, jeśli zasada „Wyodrębnianie zmiennych” ma prefiks zdefiniowany w elemencie <Namespace>
w elemencie <XMLPayload>
, ale nie zdefiniowano identyfikatora URI.
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd, i nazwę prefiksu. Oba te elementy znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to
EV-XML-Age
, a prefiks toapigee
:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy nazwa prefiksu ustawionego w elemencie
<Namespace>
w elemencie<XMLPayload>
jest zgodna z nazwą prefiksu podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określa prefiks o nazwieapigee
w elemencie<Namespace>
zgodny z treścią komunikatu o błędzie:<?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>
Sprawdź, czy element
<Namespace>
o określonym prefiksie zidentyfikowanym w kroku 2 ma prawidłowy identyfikator URI. Jeśli brakuje identyfikatora URI, jest to przyczyna błędu.W przedstawionej powyżej przykładowej zasadzie Wyodrębnianie zmiennych zwróć uwagę, że nie ma identyfikatora URI odpowiadającego elementowi
<Namespace>
o prefiksieapigee
. W związku z tym pojawia się błąd:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Rozdzielczość
Sprawdź, czy wszystkie elementy <Namespace>
zdefiniowane z prefiksem mają odpowiedni identyfikator URI w zasadzie Wyodrębnianie zmiennych. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Duplicate prefix [prefix_name].
Przykładowy komunikat o błędzie
Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Przykładowy zrzut ekranu
Przyczyna
Ten błąd występuje, jeśli zasada Wyodrębnianie zmiennych ma ten sam prefiks zdefiniowany więcej niż raz w elemencie <Namespace>
pod elementem <XMLPayload>
.
Ten błąd występuje na przykład, ponieważ prefiks apigee
jest zdefiniowany dwukrotnie, tak jak poniżej:
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd, i nazwę prefiksu. Oba te elementy znajdziesz w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to
EV-XML-Age
, a prefiks toapigee
:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy nazwa prefiksu ustawionego w elemencie
<Namespace>
w elemencie<XMLPayload>
jest zgodna z nazwą prefiksu podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określa prefiks o nazwieapigee
w elemencie<Namespace>
zgodny z treścią komunikatu o błędzie:<?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>
Sprawdź, czy element
<Namespace>
o określonym prefiksie wskazany w kroku 2 został zdefiniowany więcej niż raz. Jeśli jest ono zdefiniowane więcej niż raz, to jest przyczyną błędu.W przedstawionej powyżej przykładowej zasadzie Wyodrębnianie zmiennych zwróć uwagę, że element
<Namespace>
z prefiksemapigee
został zdefiniowany dwukrotnie, dlatego pojawia się błąd:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Rozdzielczość
Upewnij się, że w zasadach Wyodrębnianie zmiennych jest tylko jedna definicja każdego prefiksu w elementach <Namespace>
. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no xpaths to evaluate in variable name.
Przykładowy komunikat o błędzie
Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
Przykładowy zrzut ekranu
Przyczyna
Jeśli zasada Wyodrębnianie zmiennych nie zawiera elementu <XPath>
w elemencie <XMLPayload>
, wdrożenie serwera proxy interfejsu API nie powiedzie się z powyższym błędem.
Diagnostyka
Zidentyfikuj nieudaną zasadę wyodrębniania zmiennych z komunikatu o błędzie. Na przykład w tym błędzie nazwa zasady to
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy zawiera on element
<XMLPayload>
bez elementu podrzędnego<XPath>
. Jeśli tak, to jest jego przyczyna.Oto np. zasada Wyodrębnianie zmiennych zawierająca element
<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>
Ponieważ nie ma elementu
<XPath>
, wdrożenie serwera proxy interfejsu API nie powiedzie się.
Rozdzielczość
Sprawdź, czy zasada Wyodrębnianie zmiennych ma zdefiniowany element <XPath>
w elemencie <XMLPayload>
. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: XPath expression is empty in variable name.
Przykładowy komunikat o błędzie
Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.
Przykładowy zrzut ekranu
Przyczyna
Jeśli zasada Wyodrębnianie zmiennych zawiera puste wyrażenie <XPath>
w elemencie <XMLPayload>
, wdrożenie serwera proxy interfejsu API nie powiedzie się.
Diagnostyka
Zidentyfikuj nieudaną zasadę wyodrębniania zmiennych z komunikatu o błędzie. Na przykład w tym błędzie nazwa zasady to
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy występuje element
<XMLPayload>
z pustym elementem podrzędnym<XPath>
. Jeśli tak, to jest jego przyczyna.Oto np. zasada Wyodrębnianie zmiennych zawierająca element
<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>
Wdrożenie serwera proxy interfejsu API nie powiodło się, ponieważ w elemencie
<XMLPayload>
występuje pusty element<XPath>
.
Rozdzielczość
Sprawdź, czy zasada Wyodrębnianie zmiennych ma zdefiniowany w elemencie <XMLPayload>
niepusty i prawidłowy element <XPath>
. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.
Przykładowy komunikat o błędzie
Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
Przykładowy zrzut ekranu
Przyczyna
Jeśli zasada Wyodrębnianie zmiennych nie zawiera elementu <JSONPath>
w elemencie <JSONPayload>
, wdrożenie serwera proxy interfejsu API nie powiedzie się z powyższym błędem.
Diagnostyka
Zidentyfikuj nieudaną zasadę wyodrębniania zmiennych z komunikatu o błędzie. Na przykład w tym błędzie nazwa zasady to
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy występuje element
<JSONPayload>
bez wymaganego elementu podrzędnego<JSONPath>
. Jeśli tak, to jest jego przyczyna.Oto na przykład zasada Wyodrębnianie zmiennych zawierająca 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>
Ponieważ w elemencie
<JSONPayload>
nie ma zdefiniowanego elementu podrzędnego<JSONPath>
, wdrożenie serwera proxy interfejsu API się nie uda.
Rozdzielczość
Sprawdź, czy zasada Wyodrębnianie zmiennych ma zdefiniowany element <JSONPath>
w elemencie <JSONPayload>
. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: JSONPath expression is empty in variable name.
Przykładowy komunikat o błędzie
Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
Przykładowy zrzut ekranu
Przyczyna
Jeśli zasada Wyodrębnianie zmiennych zawiera puste wyrażenie <JSONPath>
w elemencie <JSONPayload>
, wdrożenie serwera proxy interfejsu API nie powiedzie się.
Diagnostyka
Zidentyfikuj nieudaną zasadę wyodrębniania zmiennych z komunikatu o błędzie. Na przykład w tym błędzie nazwa zasady to
Extract-Variables-1
:ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy zawiera on element
<JSONPayload>
z pustym elementem podrzędnym<JSONPath>
. Jeśli tak, to jest jego przyczyna.Oto na przykład zasada Wyodrębnianie zmiennych zawierająca element
<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>
Wdrożenie serwera proxy interfejsu API nie powiodło się, ponieważ w elemencie
<JSONPayload>
występuje pusty element<JSONPath>
.
Rozdzielczość
Sprawdź, czy zasada Wyodrębnianie zmiennych ma zdefiniowany w elemencie <JSONPayload>
niepusty i prawidłowy element <JSONPath>
. Na przykład:
<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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision [revision_number] Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]
Przykładowy komunikat o błędzie
Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
Przykładowy zrzut ekranu
Przyczyna
Jeśli zasada Wyodrębnianie zmiennych nie zawiera atrybutu name
w żadnym z elementów zasad, takich jak QueryParam
, Header
, FormParam
czy Variable
(o ile jest on wymagany), wdrożenie serwera proxy interfejsu API nie powiedzie się.
Ten błąd występuje np. wtedy, gdy w elemencie Variable
brakuje atrybutu name
.
Diagnostyka
Wskaż nazwę zasady Wyodrębnianie zmiennych, w której wystąpił błąd, i element, w którym brakuje atrybutu
name
. Znajdziesz je w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady toExtract-Variables-1
, a nazwa elementu toVariable
:Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy wszystkie elementy o nazwie określonej w kroku 1 powyżej mają atrybut
name
. Jeśli w jakimś elemencie brakuje atrybutu nazwa, to jest przyczyną błędu.Na przykład zasada Wyodrębnianie zmiennych ma zdefiniowany element
<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>
Zwróć uwagę, że w elemencie
Variable
brakuje atrybutuname
, więc wdrożenie serwera proxy interfejsu API nie powiodło się.
Rozdzielczość
Upewnij się, że zasada Wyodrębnianie zmiennych zawiera wymagany atrybut name
dla elementów QueryParam
, Header
, FormParam
lub Variable
. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Saving Revision [revision_number] Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]
Przykładowy komunikat o błędzie
Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
Przykładowy zrzut ekranu
Przyczyna
Jeśli zasada Wyodrębnianie zmiennych nie ma zmiennej określonej w elemencie <Pattern>
, wdrożenie serwera proxy interfejsu API nie powiedzie się. Element <Pattern>
wymaga nazwy zmiennej, w której będą przechowywane wyodrębnione dane.
Diagnostyka
Zidentyfikuj nazwę zasady Wyodrębnianie zmiennych, w której wystąpił błąd, i wzorca, dla którego brakuje zmiennej. Znajdziesz je w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to
Extract-Variables-1
, a nazwa elementu to/a/b
:Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy wzorzec ustawiony w elemencie
<Pattern>
jest zgodny ze wzorcem określonym w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określa wzorzec/a/b
zgodny z treścią komunikatu o błędzie:Oto przykład zasady Wyodrębnianie zmiennych mające 3 elementy
<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>
Sprawdź, czy element
<Pattern>
zidentyfikowany w kroku 2 nie ma zmiennej. Zmienne muszą być ujęte w nawiasy klamrowe. Jeśli wzorzec nie ma zmiennej, to jest przyczyną błędu.Element
<Pattern>
ze wzorcem /a/b nie zawiera zmiennej, więc wdrożenie serwera proxy interfejsu API nie powiodło się.<Pattern ignoreCase="true">/a/b/</Pattern>
Rozdzielczość
Sprawdź, czy wszystkie elementy <Pattern>
zawierają zmienną (nazwę ujętą w nawiasy klamrowe). Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
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].
Przykładowy komunikat o błędzie
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.
Przykładowy zrzut ekranu
Przyczyna
Jeśli zasada Wyodrębnianie zmiennych zawiera wyrażenie <XPath>
, w którym typ <Variable>
jest zdefiniowany jako zbiór węzłów, ale nie można go przekonwertować na zbiór węzłów, wdrożenie serwera proxy interfejsu API się nie uda.
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd, i ścieżkę XPath, której nie można przekonwertować na zbiór węzłów. Oba te elementy znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady to
Extract-Variables-1
, a ścieżka XPath to123
.ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy zbiór XPath w elemencie
<XPath>
jest zgodny ze ścieżką XPath podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określajako 123
, co jest zgodne z treścią komunikatu o błędzie:<?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>
Sprawdź typ elementu
<Variable>
odpowiadający elementowi<XPath>
określonemu w kroku 2 powyżej. Jeśli typ<Variable>
tonodeset
, to jest przyczyną błędu.Zwróć uwagę, że wyrażenie
<XPath>
to123
w przykładowej zasadzie Wyodrębnianie zmiennych.<XPath>123</XPath>
Nie można przekonwertować wyrażenia
123
na zbiór węzłów. Z tego powodu wdrożenie proxy interfejsu API się nie uda.
Rozdzielczość
Sprawdź, czy wyrażenia <XPath>
używane w zasadzie Wyodrębnianie zmiennych mogą zostać przekonwertowane na zbiór węzłów, jeśli typ <Variable>
jest zdefiniowany jako zbiór węzłów. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]
Przykładowy komunikat o błędzie
Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
Przykładowy zrzut ekranu
Przyczyna
Jeśli definicja elementu <Pattern>
w którymkolwiek z elementów, takich jak URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
lub JSONPayload
w zasadzie wyodrębniania zmiennych, jest nieprawidłowa, wdrożenie serwera proxy interfejsu API nie powiedzie się.
Diagnostyka
Zidentyfikuj niedziałającą zasadę Wyodrębnianie zmiennych w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to
Extract-Variables-2
:Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
W pliku XML zasady „Wyodrębnianie zmiennych” sprawdź, czy występuje któryś z tych elementów i dodaj element
<Pattern>
.URIPath
,QueryParam
,Header
,FormParam
,XMLPayload
lubJSONPayload
.Oto przykładowa zasada Wyodrębnianie zmiennych z elementem
<Pattern>
wewnątrz elementu<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>
Sprawdź definicję każdego elementu
<Pattern>
. Jeśli występuje dowolny element<Pattern>
z nieprawidłową definicją, to jest przyczyną błędu.W przykładowej zasadzie Wyodrębnianie zmiennych widocznej powyżej zwróć uwagę na to, że definicja
<Pattern>
w elemencie<QueryParam>
jest nieprawidłowa, dlatego wdrożenie serwera proxy interfejsu API się nie uda. Zobacz też Informacje o dopasowywaniu i tworzeniu zmiennych<Pattern ignoreCase="true">{*}</Pattern>
Rozdzielczość
Upewnij się, że definicja elementu <Pattern>
w elementach URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
lub JSONPayload
w zasadzie Wyodrębnianie zmiennych jest prawidłowa. Na przykład:
<?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>
Zobacz też Informacje o dopasowywaniu i tworzeniu zmiennych.
XPathCompilationFailed
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge lub interfejsu Edge Management API kończy się niepowodzeniem i wyświetlany jest ten komunikat o błędzie:
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].
Przykładowy komunikat o błędzie
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.
Przykładowy zrzut ekranu
Przyczyna
Jeśli prefiks lub wartość używana w elemencie <XPath>
nie należy do żadnej z przestrzeni nazw zadeklarowanych w zasadzie wyodrębniania zmiennych, wdrożenie serwera proxy interfejsu API nie powiedzie się.
Więcej informacji o przestrzeniach nazw, XPath i prefiksach znajdziesz w dokumencie Przestrzenie nazw XML i jego wpływ na XPath i XPath.
Diagnostyka
Zidentyfikuj zasadę Wyodrębnianie zmiennych, w której wystąpił błąd, i ścieżkę XPath, której nie można skompilować. Oba te elementy znajdziesz w komunikacie o błędzie. Na przykład w poniższym błędzie nazwa zasady to
EV-XML-Age
, a xpath to/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.
W pliku XML zasad dotyczących wyodrębniania zmiennych sprawdź, czy zbiór XPath w elemencie
<XPath>
jest zgodny ze ścieżką XPath podaną w komunikacie o błędzie (krok 1 powyżej). Na przykład ta zasada określajako /apigee:Directions/apigee:route/apigee:leg/apigee:name
, co jest zgodne z treścią komunikatu o błędzie:<?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>
Sprawdź elementy
<Namespaces>
i<XPath>
w zasadzie Wyodrębnianie zmiennych. Jeśli określony<XPath>
w komunikacie o błędzie używa prefiksu lub wartości, które nie należą do przestrzeni nazw zadeklarowanych w zasadzie Wyodrębnianie zmiennych, to jest przyczyną błędu.Zauważ, że konkretny element
<XPath>
używa prefiksuapigee
w przykładowej zasadzie Wyodrębnianie zmiennych.<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
Jednak prefiks
apigee
nie jest zdefiniowany w żadnym z elementów<Namespace>
, dlatego kompilacja obiektu<XPath>
kończy się niepowodzeniem wdrożenia.
Rozdzielczość
Sprawdź, czy wszystkie przestrzenie nazw, które są używane w elementach <XPath>
, są zadeklarowane w zasadzie Wyodrębnianie zmiennych. Na przykład:
<?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>