Вы просматриваете документацию по Apigee Edge.
Перейдите к документации по Apigee X. Информация
NothingToExtract
Сообщение об ошибке
Развертывание прокси-сервера 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>
Поскольку в правиле Extract Variables нет ни одного обязательного элемента, развертывание прокси-сервера 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.
диагностика;
Определите правило Extract Variables, в котором произошла ошибка, и название префикса. Оба этих элемента можно найти в сообщении об ошибке. Например, в приведенном ниже сообщении об ошибке название правила –
EV-XML-Age, а префикс –apigee:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.В XML-коде неудачного правила Extract Variables убедитесь, что название префикса, заданное в элементе
<Namespace>под элементом<XMLPayload>, совпадает с названием префикса, указанным в сообщении об ошибке (шаг 1 выше). Например, в приведенном ниже правиле в элементе<Namespace>указан префиксapigee, который соответствует префиксу в сообщении об ошибке:<?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 отсутствует, это и есть причина ошибки.В примере правила "Извлечь переменные", приведенном выше, обратите внимание, что для элемента
<Namespace>с префиксомapigeeнет URI. В результате возникает ошибка:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Разрешение
Убедитесь, что все элементы <Namespace>, определенные с префиксом, имеют соответствующий URI в правиле Extract Variables. Пример:
<?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
Сообщение об ошибке
Развертывание прокси-сервера 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>
диагностика;
Определите правило Extract Variables, в котором произошла ошибка, и название префикса. Оба этих элемента можно найти в сообщении об ошибке. Например, в приведенном ниже сообщении об ошибке название правила –
EV-XML-Age, а префикс –apigee:ExtractVariables EV-XML-Age: Duplicate prefix apigee.В XML-коде неудачного правила Extract Variables убедитесь, что название префикса, заданное в элементе
<Namespace>под элементом<XMLPayload>, совпадает с названием префикса, указанным в сообщении об ошибке (шаг 1 выше). Например, в приведенном ниже правиле в элементе<Namespace>указан префиксapigee, который соответствует префиксу в сообщении об ошибке:<?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-файле правила Extract Variables, которое не удалось выполнить, проверьте, есть ли элемент
<XMLPayload>без дочернего элемента<XPath>. Если да, то это и есть причина ошибки.Ниже приведен пример политики Extract Variables с элементом
<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 не удается.
Разрешение
Убедитесь, что в правиле Extract Variables элемент <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>
EmptyXPathExpression
Сообщение об ошибке
Развертывание прокси-сервера 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.
Пример скриншота

Причина
Если в правиле извлечения переменных в элементе <XMLPayload> есть пустое выражение <XPath>, развертывание прокси-сервера API завершится неудачно.
диагностика;
Определите, какое правило "Извлечь переменные" не удалось выполнить, по сообщению об ошибке. Например, в следующем сообщении об ошибке название правила –
Extract-Variables-1:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.В XML-файле правила Extract Variables, которое не удалось выполнить, определите, есть ли элемент
<XMLPayload>с пустым дочерним элементом<XPath>. Если да, то это и есть причина ошибки.Ниже приведен пример политики Extract Variables с элементом
<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>Поскольку в элементе
<XMLPayload>есть пустой элемент<XPath>, развертывание прокси API завершается неудачно.
Разрешение
Убедитесь, что в правиле извлечения переменных под элементом <XMLPayload> определен непустой и действительный элемент <XPath>. Пример:
<?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
Сообщение об ошибке
Развертывание прокси-сервера 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>. Если да, то это и есть причина ошибки.Ниже приведен пример политики Extract Variables с элементом
<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>Поскольку в элементе
<JSONPayload>не определен дочерний элемент<JSONPath>, развертывание прокси API завершается неудачно.
Разрешение
Убедитесь, что в правиле Extract Variables под элементом <JSONPayload> определен элемент <JSONPath>. Пример:
<?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
Сообщение об ошибке
Развертывание прокси-сервера 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.
Пример скриншота

Причина
Если в правиле извлечения переменных в элементе <JSONPayload> есть пустое выражение <JSONPath>, развертывание прокси-сервера API завершится неудачно.
диагностика;
Определите, какое правило "Извлечь переменные" не удалось выполнить, по сообщению об ошибке. Например, в следующем сообщении об ошибке название правила –
Extract-Variables-1:ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.В XML-файле неудачной политики извлечения переменных проверьте, есть ли элемент
<JSONPayload>с пустым дочерним элементом<JSONPath>. Если да, то это и есть причина ошибки.Ниже приведен пример политики Extract Variables с элементом
<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>Поскольку в элементе
<JSONPayload>есть пустой элемент<JSONPath>, развертывание прокси API завершается неудачно.
Разрешение
Убедитесь, что в правиле извлечения переменных под элементом <JSONPayload> определен непустой и действительный элемент <JSONPath>. Пример:
<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
Сообщение об ошибке
Развертывание прокси-сервера 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 завершится неудачно.
Например, эта ошибка возникает, если в элементе Variable отсутствует атрибут name.
диагностика;
Определите название правила извлечения переменных, в котором произошла ошибка, и элемент, в котором отсутствует атрибут
name. Эти элементы можно найти в сообщении об ошибке. Например, в приведенной ниже ошибке название правила –Extract-Variables-1, а название элемента –Variable:Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in VariableВ XML-файле правила Extract Variables (Извлечь переменные), которое не удалось выполнить, убедитесь, что у всех элементов с названием, определенным на шаге 1, есть атрибут
name. Если в каком-либо элементе отсутствует атрибут name, это и является причиной ошибки.Например, в следующем правиле извлечения переменных определен элемент
<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>Обратите внимание, что в элементе
Variableотсутствует атрибутname, поэтому развертывание прокси API не удается.
Разрешение
Убедитесь, что правило извлечения переменных содержит обязательный атрибут name для элементов QueryParam, Header, FormParam или 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 name="account_active" type="boolean">
<Pattern>{isAccountActive}</Pattern>
</Variable>
</ExtractVariables>
PatternWithoutVariable
Сообщение об ошибке
Развертывание прокси-сервера 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-файле правила Extract Variables, которое не удалось выполнить, убедитесь, что шаблон, заданный в элементе
<Pattern>, соответствует шаблону, указанному в сообщении об ошибке (шаг 1 выше). Например, в следующем правиле задан шаблон/a/b, который соответствует тексту сообщения об ошибке:Ниже приведен пример политики Extract Variables с тремя элементами
<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>Проверьте, не содержит ли элемент
<Pattern>, указанный на шаге 2, переменную. Переменные должны быть заключены в фигурные скобки. Если в шаблоне нет переменной, это и является причиной ошибки.Элемент
<Pattern>с шаблоном /a/b не содержит переменную, поэтому развертывание прокси API завершается неудачно.<Pattern ignoreCase="true">/a/b/</Pattern>
Разрешение
Убедитесь, что все элементы <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/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
</URIPath>
<VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>
CannotBeConvertedToNodeset
Сообщение об ошибке
Развертывание прокси-сервера 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 завершится неудачно.
диагностика;
Определите правило Extract Variables, в котором произошла ошибка, и 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-файле правила Extract Variables, которое не удалось выполнить, убедитесь, что путь XPath, заданный в элементе
<XPath>, соответствует пути XPath, указанному в сообщении об ошибке (шаг 1 выше). Например, в следующем правиле указанокак 123, что соответствует сообщению об ошибке:<?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>Проверьте тип элемента
<Variable>, соответствующего элементу<XPath>, который был найден на шаге 2. Если тип<Variable>–nodeset, то именно это и является причиной ошибки.Обратите внимание, что в примере правил извлечения переменных выражение
<XPath>заменено на123.<XPath>123</XPath>Выражение
123нельзя преобразовать в набор узлов. Поэтому развертывание прокси API не удается.
Разрешение
Убедитесь, что выражения <XPath>, используемые в правиле "Извлечь переменные", можно преобразовать в набор узлов, если тип <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/>
<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
Сообщение об ошибке
Развертывание прокси-сервера 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-файле политики Extract Variables, который не удалось обработать, проверьте, есть ли какие-либо из этих элементов и содержит ли он элемент
<Pattern>:URIPath,QueryParam,Header,FormParam,XMLPayloadилиJSONPayload.Пример правила извлечения переменных с элементом
<Pattern>внутри элемента<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>Изучите определение каждого элемента
<Pattern>. Если в элементе<Pattern>есть недопустимое определение, это и будет причиной ошибки.В примере правила извлечения переменных, приведенном выше, определение
<Pattern>в элементе<QueryParam>является недействительным, поэтому развертывание прокси API завершается неудачно. Другие ресурсы: О сопоставлении и создании переменных<Pattern ignoreCase="true">{*}</Pattern>
Разрешение
Убедитесь, что определение элемента <Pattern> в элементах URIPath, QueryParam, Header, FormParam, XMLPayload или JSONPayload в правиле "Извлечь переменные" является действительным. Пример:
<?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>
Также ознакомьтесь со статьей О сопоставлении и создании переменных.
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 Namespaces and How They Affect XPath and XSLT.
диагностика;
Определите правило Extract Variables, в котором произошла ошибка, и 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-файле правила Extract Variables, которое не удалось выполнить, убедитесь, что путь XPath, заданный в элементе
<XPath>, соответствует пути XPath, указанному в сообщении об ошибке (шаг 1 выше). Например, в следующем правиле указанокак /apigee:Directions/apigee:route/apigee:leg/apigee:name, что соответствует сообщению об ошибке:<?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>Проверьте элементы
<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" 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>