Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
НичегоToExtract
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
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].
Пример сообщения об ошибке
Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Пример скриншота

Причина
Если в политике извлечения переменных нет элементов URIPath , QueryParam , Header , FormParam , XMLPayload или JSONPayload , развертывание прокси-сервера API завершится неудачно, поскольку нечего извлекать.
Как указано в сообщении об ошибке, политика извлечения переменных должна содержать хотя бы один из этих элементов, включенных в политику: URIPath , QueryParam , Header , FormParam , XMLPayload или JSONPayload .
Диагностика
Изучите политику извлечения переменных, указанную в сообщении об ошибке. Если в политике нет хотя бы одного из следующих элементов: URIPath , QueryParam , Header , FormParam , XMLPayload или JSONPayload , то это и есть причина ошибки. Например, следующая политика извлечения переменных не содержит ни одного из вышеупомянутых элементов:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
</ExtractVariables>
Поскольку ни один из обязательных элементов не присутствует в политике извлечения переменных, развертывание прокси-сервера API завершается неудачно.
Разрешение
Убедитесь, что политика извлечения переменных содержит хотя бы один из этих обязательных элементов: URIPath , QueryParam , Header , FormParam , XMLPayload , JSONPayload . Например:
<?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
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.
Пример сообщения об ошибке
Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Пример скриншота

Причина
Эта ошибка возникает, если политика извлечения переменных имеет префикс, определенный в элементе <Namespace> в элементе <XMLPayload> , но URI не определен.
Диагностика
Определите политику извлечения переменных, в которой произошла ошибка, и имя префикса. Оба эти элемента можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики —
EV-XML-Age, а префикс —apigee:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.В неудавшемся XML-коде политики извлечения переменных убедитесь, что имя префикса, установленное в элементе
<Namespace>под элементом<XMLPayload>, соответствует имени префикса, указанному в сообщении об ошибке (шаг № 1 выше). Например, следующая политика определяет префикс с именемapigeeв элементе<Namespace>, который соответствует тому, что указано в сообщении об ошибке:<?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>Убедитесь, что элемент
<Namespace>с определенным префиксом, указанным на шаге 2, имеет действительный URI. Если URI отсутствует, это причина ошибки.В примере политики извлечения переменных, показанном выше, обратите внимание, что нет URI, соответствующего элементу
<Namespace>с префиксомapigee; поэтому вы получаете ошибку:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Разрешение
Убедитесь, что все элементы <Namespace> , определенные с помощью префикса, имеют соответствующий URI в политике извлечения переменных. Например:
<?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>
Дубликат префикса
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Duplicate prefix [prefix_name].
Пример сообщения об ошибке
Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Пример скриншота

Причина
Эта ошибка возникает, если политика извлечения переменных имеет один и тот же префикс, определенный более одного раза в элементе <Namespace> в элементе <XMLPayload> .
Например, эта ошибка возникает, поскольку префикс apigee определен дважды, как показано ниже:
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
Диагностика
Определите политику извлечения переменных, в которой произошла ошибка, и имя префикса. Оба эти элемента можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики —
EV-XML-Age, а префикс —apigee:ExtractVariables EV-XML-Age: Duplicate prefix apigee.В неудавшемся XML-файле политики извлечения переменных убедитесь, что имя префикса, установленное в элементе
<Namespace>под элементом<XMLPayload>, соответствует имени префикса, указанному в сообщении об ошибке (шаг № 1 выше). Например, следующая политика определяет префикс с именемapigeeв элементе<Namespace>, который соответствует тому, что указано в сообщении об ошибке:<?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>Определите, был ли элемент
<Namespace>с определенным префиксом, указанным на шаге 2, определен более одного раза. Если он определен более одного раза, то это и есть причина ошибки.В приведенном выше примере политики извлечения переменных обратите внимание, что элемент
<Namespace>с префиксомapigeeбыл определен дважды; поэтому вы получаете ошибку:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Разрешение
Убедитесь, что для каждого префикса в элементах <Namespace> в политике извлечения переменных существует только одно определение. Например:
<?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
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no xpaths to evaluate in variable name.
Пример сообщения об ошибке
Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
Пример скриншота

Причина
Если политика извлечения переменных не содержит элемента <XPath> в элементе <XMLPayload> , то развертывание прокси-сервера API завершается с ошибкой, показанной выше.
Диагностика
Определите неудавшуюся политику извлечения переменных из сообщения об ошибке. Например, в следующей ошибке имя политики —
Extract-Variables-1:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.В неудавшемся XML-коде политики извлечения переменных проверьте, существует ли элемент
<XMLPayload>без дочернего элемента<XPath>. Если да, то это и есть причина ошибки.Например, вот политика извлечения переменных, в которой есть элемент
<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>Поскольку элемент
<XPath>отсутствует, развертывание прокси-сервера API завершается неудачно.
Разрешение
Убедитесь, что в политике извлечения переменных есть элемент <XPath> , определенный в элементе <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">
<XPath>/isReachable</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
Пустое выражениеXPathExpression
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: XPath expression is empty in variable name.
Пример сообщения об ошибке
Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.
Пример скриншота

Причина
Если политика извлечения переменных содержит пустое выражение <XPath> в элементе <XMLPayload> , развертывание прокси-сервера API завершается неудачей.
Диагностика
Определите неудавшуюся политику извлечения переменных из сообщения об ошибке. Например, в следующей ошибке имя политики —
Extract-Variables-1:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.В неудавшемся XML-коде политики извлечения переменных определите, существует ли элемент
<XMLPayload>с пустым дочерним элементом<XPath>. Если да, то это и есть причина ошибки.Например, вот политика извлечения переменных, в которой есть элемент
<XMLPayload>:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t; DisplayNameExtract V>ariable<s-1/Dis>playN<ame Proper>ties/ < Source clea>rPayl<oad="false"request/Source >VariableP<refixapigee>/Variable<Prefix XMLPayload stopPayloadProc>essing="<false><"> <Namespace>s/ < Varia>b<le name="add>ress" type="string" XPath/XPath /Variable /XMLPayload /ExtractVariablesПоскольку внутри элемента
<XMLPayload>имеется пустой элемент<XPath>, развертывание прокси-сервера API завершается неудачно.
Разрешение
Убедитесь, что политика извлечения переменных имеет непустой и допустимый элемент <XPath> , определенный в элементе <XMLPayload> . Например:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
DisplayNameExtract V>ariable<s-1/Dis>playN<ame
Proper>ties/
< Source clea>rPayl<oad="false"request/Source
>VariableP<refixapigee>/Variable<Prefix
XMLPayload stopPayloadProc>essing="<false>"
< > Namespac<es/
> Va<riable name>=<"address&quo>t; type="string"
XPath/address/XPath
/Variable
/XMLPayload
/ExtractVariables
NoJSONPathsToEvaluate
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.
Пример сообщения об ошибке
Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
Пример скриншота

Причина
Если в политике извлечения переменных нет элемента <JSONPath> внутри элемента <JSONPayload> , то развертывание прокси-сервера API завершается с ошибкой, показанной выше.
Диагностика
Определите неудавшуюся политику извлечения переменных из сообщения об ошибке. Например, в следующей ошибке имя политики —
Extract-Variables-1:ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.В неудавшемся XML-файле политики извлечения переменных определите, существует ли элемент
<JSONPayload>без обязательного дочернего элемента<JSONPath>. Если да, то это и есть причина ошибки.Например, вот политика извлечения переменных с элементом
<JSONPayload>:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t; Disp>layNameEx<tract Variables-1/Dis>playName < Prope>rties</ JSONPa>yload< Variable name=&quo>t;title<"<>/span> < /Variable > /JS<ONPayload S>o<urce clearPayload>="false"request/Source VariablePrefixapigee/VariablePrefix /ExtractVariablesПоскольку в элементе
<JSONPayload>не определен дочерний элемент<JSONPath>, развертывание прокси-сервера API завершается неудачей.
Разрешение
Убедитесь, что в политике извлечения переменных есть элемент <JSONPath> , определенный в элементе <JSONPayload> . Например:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
Disp>layNameEx<tract Variables-1/Dis>playName
<Properti>es/
JSON<Payload
> Va<riable na>me=&q<uot;title&qu>ot;
< JSONPath$.book.t>itle/JS<ONPath<>/span>
< /Variable
> /JS<ONPayload
S>o<urce clearPayload>="false"request/Source
VariablePrefixapigee/VariablePrefix
/ExtractVariables
Пустое выражениеJSONPathExpression
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: JSONPath expression is empty in variable name.
Пример сообщения об ошибке
Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
Пример скриншота

Причина
Если политика извлечения переменных содержит пустое выражение <JSONPath> внутри элемента <JSONPayload> , развертывание прокси-сервера API завершается неудачно.
Диагностика
Определите неудавшуюся политику извлечения переменных из сообщения об ошибке. Например, в следующей ошибке имя политики —
Extract-Variables-1:ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.В неудавшемся XML-коде политики извлечения переменных проверьте, существует ли элемент
<JSONPayload>с пустым дочерним элементом<JSONPath>. Если да, то это и есть причина ошибки.Например, вот политика извлечения переменных, в которой есть элемент
<JSONPayload>:<ExtractVariables async="false" continueOnError="false" enabled="true&qu>ot; name=<"Extra>ct-Variables-1"<; Di>splayName<Extract Var>iables-1/<DisplayName> Prop<erties/ JSONPayload Varia>ble name="ac<count_nu><mber">; type="<integer&q>uot; < >JSONPath/<JSONPath /Varia>ble < /J>SONPayloa<d Sour>ce cle<arPayload=">;fals<e"request/So>urce VariablePrefixapigee/VariablePrefix /ExtractVariablesПоскольку внутри элемента
<JSONPayload>имеется пустой элемент<JSONPath>, развертывание прокси-сервера API завершается неудачно.
Разрешение
Убедитесь, что в политике извлечения переменных есть непустой и допустимый элемент <JSONPath> , определенный в элементе <JSONPayload> . Например:
<ExtractVariables async="false" continueOnError="false" enabled="true&qu>ot; n<ame="E>xtract-Variables-1&<quot;
Di>splay<NameExtract> Vari<ables-1/Dis>playName
< Properties/
JSONPayload
Varia>ble name=&qu<ot;accou>nt_number" <type=&quo>t;integer<"
> < JSONPath>$.acc<ount.number/JSONPath
> /Vari<able
> /JS<ONPayload
>Source< clearPayload=&>q<uot;false"re>quest/Source
VariablePrefixapigee/VariablePrefix
/ExtractVariables
Отсутствует имя
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
Error Saving Revision [revision_number] Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]
Пример сообщения об ошибке
Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
Пример скриншота

Причина
Если политика извлечения переменных не имеет атрибута name ни в одном из элементов политики, таких как QueryParam , Header , FormParam или Variable , где это необходимо, то развертывание прокси-сервера API завершается неудачно.
Например, эта ошибка возникает, если атрибут name отсутствует в элементе Variable .
Диагностика
Определите имя политики извлечения переменных, в которой произошла ошибка, и элемент, в котором атрибут
nameотсутствует. Эти элементы можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики —Extract-Variables-1, а имя элемента —Variable:Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in VariableВ неудавшемся XML-файле политики извлечения переменных убедитесь, что все элементы с именем, определенным на шаге 1 выше, имеют атрибут
name. Если есть какой-либо элемент, у которого атрибут имени отсутствует, это и есть причина ошибки.Например, в следующей политике извлечения переменных определен элемент
<Variable>:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t; DisplayNameExtra>ct Variab<les-1/D>isplayName Pr<operties>/ < Variable> <type="boolea>n" Pattern{isAccountActive}/Pattern /Variable /ExtractVariablesОбратите внимание, что атрибут
nameотсутствует в элементеVariable, поэтому развертывание прокси-сервера API завершается неудачей.
Разрешение
Убедитесь, что политика извлечения переменных содержит обязательный атрибут name для элементов QueryParam , Header , FormParam или Variable . Например:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
DisplayNameExtract Variables-1/Display>Name
<Propert>ies/
Variable< name=&q>uot;a<ccount_ac>t<ive" type=&q>uot;boolean"
Pattern{isAccountActive}/Pattern
/Variable
/ExtractVariables
ШаблонБезПеременной
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
Error Saving Revision [revision_number] Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]
Пример сообщения об ошибке
Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
Пример скриншота

Причина
Если в политике извлечения переменных не указана переменная в элементе <Pattern> , развертывание прокси-сервера API завершается неудачно. Элемент <Pattern> требует имени переменной, в которой будут храниться извлеченные данные.
Диагностика
Определите имя политики извлечения переменных, в которой произошла ошибка, и шаблон, в котором переменная отсутствует. Эти элементы можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики —
Extract-Variables-1, а имя элемента —/a/b:Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.В неудавшемся XML-файле политики извлечения переменных убедитесь, что шаблон, заданный в элементе
<Pattern>, соответствует шаблону, указанному в сообщении об ошибке (шаг № 1 выше). Например, следующая политика определяет шаблон/a/b, который соответствует сообщению об ошибке:Например, вот политика извлечения переменных, содержащая три элемента
<Pattern>:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? ExtractVaria>bles< name=>"E<xtractV>aria<bles-1&>quot; < Sourcerequest/Source > URIPath < Patte>rn igno<reCase="true"/a>/{pat<hSeg}/Pa>ttern < Pattern ignoreCase=&>quot;true"/<a/b//Pat>tern< P>atte<rn ignoreCase=>"true<"/a/b/c/{p>a<thSeg}/Pattern >/URIPath VariablePrefixurirequest/VariablePrefix /ExtractVariablesПроверьте, нет ли в элементе
<Pattern>, указанном на шаге 2, переменной. Переменные должны быть заключены в фигурные скобки. Если в шаблоне нет переменной, то это и есть причина ошибки.Элемент
<Pattern>, имеющий шаблон /a/b , не включает переменную; поэтому развертывание прокси-сервера API завершается неудачей.<Pattern ignoreCase=">true&<quot;/a/>b//Pattern
Разрешение
Убедитесь, что все элементы <Pattern> содержат переменную (имя, заключенное в фигурные скобки). Например:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ExtractVaria>bles< name=>"E<xtractV>aria<bles-1&>quot;
< Sourcerequest/Source
> URIPath
< Patte>rn igno<reCase="true"/a>/{pathSeg}/Pat<tern
> Patt<ern ignoreCase="true>"/a/b/{path<Seg}/Pat>tern<
P>atte<rn ignoreCase=>"true<"/a/b/c/{p>a<thSeg}/Pattern
> /URIPath
VariablePrefixurirequest/VariablePrefix
/ExtractVariables
Каннотбеконвертедтонодезет
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
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].
Пример сообщения об ошибке
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.
Пример скриншота

Причина
Если в политике извлечения переменных есть выражение <XPath> , где тип <Variable> определен как nodeset , но это выражение невозможно преобразовать в nodeset, то развертывание прокси-сервера API завершается неудачей.
Диагностика
Определите политику извлечения переменных, в которой произошла ошибка, и XPath, который невозможно преобразовать в набор узлов. Оба эти элемента можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики —
Extract-Variables-1, а XPath —123.ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.В неудавшемся XML-файле политики извлечения переменных убедитесь, что XPath, установленный в элементе
<XPath>, соответствует XPath, указанному в сообщении об ошибке (шаг № 1 выше). Например, следующая политика определяеткак 123, что соответствует сообщению об ошибке:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t; DisplayNameExtract V>ariable<s-1/Dis>playN<ame Proper>ties/ < Source clear>Paylo<ad="false"request/Source V>ariablePr<efixvisitor>/Variable<Prefix XMLPayload stopPayloadP>rocessing=&qu<ot;fa>lse<"> <Namespace>s/ < Varia>b<le name="age>" type="nodeset" XPath123/XPath /Variable /XMLPayload /ExtractVariablesПроверьте тип элемента
<Variable>соответствующий<XPath>, указанному на шаге 2 выше. Если тип<Variable>—nodeset, это причина ошибки.Обратите внимание, что в примере политики извлечения переменных выражение
<XPath>имеет123.<XPath>123</XPath>Выражение
123невозможно преобразовать в набор узлов. Таким образом, развертывание API-прокси завершается неудачей.
Разрешение
Убедитесь, что выражения <XPath> , используемые в политике извлечения переменных, можно преобразовать в набор узлов, если тип <Variable> определен как набор узлов. Например:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError="fal>se&qu<ot; enabled>="true" n<ame="Ex>tract<-Variables->1&quo<t;
DisplayNameExtract V>ariable<s-1/Dis>playN<ame
Proper>ties/
< Source clear>Paylo<ad="false"request/Source
V>ariablePr<efixvisitor>/Variable<Prefix
XMLPayload stopPayloadP>rocessing=&qu<ot;fa>lse"
< >Namespace<s/
> Var<iable name=>&<quot;age" ty>pe="nodeset"
XPath/visitor/age/XPath
/Variable
/XMLPayload
/ExtractVariables
Инвалидпаттерн
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]
Пример сообщения об ошибке
Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
Пример скриншота

Причина
Если определение элемента <Pattern> недопустимо в любом из элементов, таких как URIPath , QueryParam , Header , FormParam , XMLPayload или JSONPayload в политике извлечения переменных, то развертывание прокси-сервера API завершается неудачно.
Диагностика
Определите ошибочную политику извлечения переменных из сообщения об ошибке. Например, в следующей ошибке имя политики —
Extract-Variables-2:Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.В неудавшемся XML-коде политики извлечения переменных проверьте, присутствует ли какой-либо из этих элементов, и включите элемент
<Pattern>:URIPath,QueryParam,Header,FormParam,XMLPayloadилиJSONPayload.Например, вот пример политики извлечения переменных с элементом
<Pattern>внутри элемента<QueryParam>:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? ExtractVaria>bles <name=">ExtractVariables-2<" D>ispla<yNameE>xtractV<ariable>s-2/D<isplayName Sourcer>equest/So<urce QueryParam name=>&qu<ot;code&>quot;< Pa>ttern< ignoreCase=&q>uot;true&<quot;{*}/Patter>n< /QueryParam >VariablePrefixqueryinfo/VariablePrefix /ExtractVariablesИзучите определение каждого элемента
<Pattern>. Если есть какой-либо элемент<Pattern>с недопустимым определением, это и есть причина ошибки.В приведенном выше примере политики извлечения переменных обратите внимание, что определение
<Pattern>в элементе<QueryParam>недопустимо; поэтому развертывание прокси-сервера API завершается неудачей. См. также О сопоставлении и создании переменных.<Pattern ignoreCase=">tru<e"{>*}/Pattern
Разрешение
Убедитесь, что определение элемента <Pattern> в элементах URIPath , QueryParam , Header , FormParam , XMLPayload или JSONPayload в политике извлечения переменных является допустимым. Например:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ExtractVaria>bles <name=">ExtractVariables-2"
DisplayNa<meExtract a >value< from >a query< parame>ter/D<isplayName
Sourcer>equest/So<urce
QueryParam name=>"<code&quo>t;
< Patte>rn ig<noreCase=">;true&quo<t;{code}/Patter>n<
/QueryParam
> VariablePrefixqueryinfo/VariablePrefix
/ExtractVariables
См. также О сопоставлении и создании переменных.
XPathCompilationFailed
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
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].
Пример сообщения об ошибке
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.
Пример скриншота

Причина
Если префикс или значение, используемые в элементе <XPath> , не являются частью ни одного из пространств имен, объявленных в политике извлечения переменных, то развертывание прокси-сервера API завершается неудачно.
Дополнительную информацию о пространствах имен, XPath и префиксах можно найти в разделе «Пространства имен XML и как они влияют на XPath и XSLT» .
Диагностика
Определите политику извлечения переменных, в которой произошла ошибка, и XPath, который не удалось скомпилировать. Оба эти элемента можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики —
EV-XML-Age, а xpath —/apigee:Directions/apigee:route/apigee:leg/apigee:name.ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.В неудавшемся XML-файле политики извлечения переменных убедитесь, что XPath, установленный в элементе
<XPath>, соответствует XPath, указанному в сообщении об ошибке (шаг № 1 выше). Например, следующая политика определяеткак /apigee:Directions/apigee:route/apigee:leg/apigee:name, что соответствует сообщению об ошибке:<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? ExtractVariables async="false" continueOnError=>&qu<ot;false&qu>ot; enable<d="true>&qu<ot; name="EV-XML-Age&q>uot; <Display>Nam<eEV-XML-Age/DisplayName Source clearPa>yload<="fal>se"r<equest/Source XMLPaylo>ad stopPayloadProcessi<ng="f>alse&<quot; N>amesp<aces Namespace prefix="g>mail&<quot;>http://mail.google.com/Namespace /Namespaces V<ariabl>e name=&q<uot;legNa>me&<quot; type=>&<quot;string">XPath/apigee:Directions/apigee:route/apigee:leg/apigee:name/XPath /Variable /XMLPayload /ExtractVariablesПроверьте элементы
<Namespaces>и<XPath>в политике извлечения переменных. Если конкретный<XPath>, указанный в сообщении об ошибке, использует префикс или значение, которое не является частью пространств имен, объявленных в политике извлечения переменных, то это и есть причина ошибки.Обратите внимание, что конкретный
<XPath>использует префиксapigeeв примере политики извлечения переменных.<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>Однако префикс
apigeeне определен ни в одном из элементов<Namespace>; поэтому компиляция<XPath>завершается неудачно, что приводит к сбою развертывания.
Разрешение
Убедитесь, что все пространства имен, используемые в элементах <XPath> , объявлены в политике извлечения переменных. Например:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
ExtractVariables async="false" continueOnError=>&qu<ot;false&qu>ot; enable<d="true>&qu<ot; name="EV-XML-Age&q>uot;
<Display>Nam<eEV-XML-Age/DisplayName
Source clearPa>yload<="fal>se"r<equest/Source
XMLPayloa>d stopPayloadProcessi<ng="f>alse"<;
Namespaces
> Namespace prefix=&quo<t;apigee&q>uot;h<ttp://www.a>pigee<.com/Namespace
Namespace pref>ix="<gmail>"http://mail.google.com/Namespace
/Namespaces<
V>ariab<le name=&>quo<t;legName&q>u<ot; type="st>ring"
XPath/apigee:Directions/apigee:route/apigee:leg/apigee:name/XPath
/Variable
/XMLPayload
/ExtractVariables