Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X. информация
ИнвалидРегулярноеВыражение
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment RegularExpressionProtection policy_name: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.
Пример сообщения об ошибке
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Пример снимка экрана с ошибкой

Причина
Если регулярное выражение в элементе <Pattern> политики RegularExpressionProtection недопустимо, развертывание прокси-сервера API завершается неудачей.
Диагностика
Определите имя политики RegularExpressionProtection из сообщения об ошибке. Например, в следующей ошибке имя политики RegularExpressionProtection —
Regular-Expression-Protection-1:Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Проверьте все элементы
<Pattern>в ошибочном XML-коде политики защиты регулярных выражений. Проверьте, не содержит ли какой-либо из элементов<Pattern>недопустимое регулярное выражение. Если какой-либо из элементов<Pattern>содержит недопустимое регулярное выражение, это и есть причина ошибки.Например, следующая политика определяет значение
Pattern>offoo){2}, которое считается недопустимым регулярным выражением:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <URIPath> <Pattern>foo){2}</Pattern> </URIPath> <Source>request</Source> </RegularExpressionProtection>В приведенном выше примере в регулярном выражении, указанном в
<Pattern>, отсутствуют открывающие круглые скобки. Следовательно, оно считается недопустимым регулярным выражением. Таким образом, развертывание прокси-сервера API не удается.
Разрешение
Убедитесь, что каждый элемент <Pattern> в политике RegularExpressionProtection содержит допустимое регулярное выражение. Вы можете искать различные онлайн- или офлайн-инструменты регулярных выражений для отладки регулярных выражений. Чтобы исправить пример политики защиты регулярных выражений, показанный выше, добавьте недостающие круглые скобки:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1">
<DisplayName>Regular Expression Protection-1</DisplayName>
<Properties/>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<URIPath>
<Pattern>(foo){2}</Pattern>
</URIPath>
<Source>request</Source>
</RegularExpressionProtection>XPathCompilationFailed
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment RegularExpressionProtection policy_name: Failed to compile xpath xpath_expression. Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.
Пример сообщения об ошибке
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile xpath /notapigee:foo/notapigee:bar. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Пример снимка экрана с ошибкой

Причина
Если префикс или значение, используемые в элементе <XPath> , не являются частью ни одного из объявленных пространств имен в политике RegularExpressionProtection , то развертывание прокси-сервера API завершается неудачей.
Дополнительную информацию о пространствах имен, XPath и префиксах можно найти в разделе «Пространства имен XML и как они влияют на XPath и XSLT» .
Диагностика
Определите имя политики RegularExpressionProtection , в которой произошла ошибка, и использованное выражение XPath. Оба эти элемента можно найти в сообщении об ошибке.
Например, в следующей ошибке имя политики —
Regular-Expression-Protection-1, а выражение XPath —/notapigee:foo/notapigee:bar:Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile xpath /notapigee:foo/notapigee:bar. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
В неудавшемся XML-файле политики защиты регулярных выражений убедитесь, что XPath, установленный в элементе
Expression, соответствует XPath, указанному в сообщении об ошибке (шаг № 1 выше).Например, следующая политика определяет XPath как
/notapigee:foo/notapigee:barчто соответствует тому, что указано в сообщении об ошибке:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/notapigee:foo/notapigee:bar</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
- Изучите элементы
<Namespaces>и<Expression>в политике RegularExpressionProtection . Если конкретное<Expression>, указанное в сообщении об ошибке, использует префикс или значение, которое не является частью пространств имен, объявленных в политике RegularExpressionProtection , то это и есть причина ошибки.Обратите внимание, что конкретный
<XPath>использует префиксnotapigeeв примере политики RegularExpressionProtection :<Expression>/notapigee:foo/notapigee:bar</Expression>
Однако префикс
notapigeeне определен ни в одном из элементов<Namespace>; поэтому компиляция<XPath>завершается неудачно, что приводит к сбою развертывания.
Разрешение
Убедитесь, что все пространства имен, используемые в элементах <Expression> в элементах <XPath> , объявлены в политике RegularExpressionProtection . Чтобы исправить приведенный выше пример, вы можете заменить префикс notapigee на apigee , который объявлен в пространствах имен:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:foo/apigee:bar</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Каннотбеконвертедтонодезет
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment RegularExpressionProtection policy_name: Result of xpath xpath_expression cannot be converted to nodeset. Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.
Пример сообщения об ошибке
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Result of xpath count(//apigee:foo) cannot be converted to nodeset. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Пример снимка экрана с ошибкой

Причина
Если в политике регулярных выражений есть выражение <XPath> , в котором элемент <Type> определен как nodeset , но это выражение невозможно преобразовать в nodeset, то развертывание прокси-сервера API завершается неудачей.
Диагностика
Определите политику RegularExpressionProtection , в которой произошла ошибка, и выражение XPath, которое невозможно преобразовать в набор узлов. Оба эти элемента можно найти в сообщении об ошибке.
Например, в следующей ошибке имя политики —
Regular-Expression-Protection-1, а выражение XPath —count(//apigee:foo):Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Result of xpath count(//apigee:foo) cannot be converted to nodeset. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
В неудавшемся XML-файле политики защиты регулярных выражений убедитесь, что XPath, заданный в элементе
<Expression>элемента<XPath>, соответствует XPath, указанному в сообщении об ошибке (шаг № 1 выше).Например, следующая политика определяет as
count(//apigee:foo), что соответствует сообщению об ошибке:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>count(//apigee:foo)</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Проверьте значение, установленное в элементе
<Type>под элементом<XPath>. Если элементом<Type>являетсяnodeset, это причина ошибки.В этом примере выражением XPath является count() , которое не возвращает один или несколько узлов. Таким образом, развертывание API-прокси завершается неудачей.
Разрешение
Если для элемента <Type> установлено значение nodeset, убедитесь, что результатом элемента <Expression> установленного в <XPath> является один или несколько узлов. Альтернативно измените элемент <Type> на более подходящее значение в зависимости от вашего варианта использования.
Чтобы исправить приведенный выше пример, вы можете изменить элемент <Expression> на другое значение, которое может возвращать узлы:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:foo/apigee:bar</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Ошибка компиляции JSONPath
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
Error Deploying Revision revision_number to environment RegularExpressionProtection policy_name: Failed to compile jsonpath jsonpath_expression Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.
Пример сообщения об ошибке
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile jsonpath $.store.book[*.author. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Пример снимка экрана с ошибкой

Причина
Если для элемента <Expression> в элементе <JSONPath> политики защиты регулярных выражений установлено недопустимое выражение JSONPath, то развертывание прокси-сервера API завершается неудачей.
Диагностика
Определите имя политики RegularExpressionProtection , в которой произошла ошибка и использовалось недопустимое выражение JSONPath. Оба эти элемента можно найти в сообщении об ошибке.
Например, в следующей ошибке имя политики —
Regular-Expression-Protection-1, а выражение JSONPath —$.store.book[*.author:Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile jsonpath $.store.book[*.author. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
В неудавшемся XML-коде политики защиты регулярных выражений убедитесь, что JSONPath, заданный в элементе
Expression, соответствует JSONPath, указанному в сообщении об ошибке (шаг № 1 выше).Например, следующая политика определяет элемент
Expressionв элементе<JSONPath>как$.store.book[*.author, что соответствует тому, что указано в сообщении об ошибке:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression>$.store.book[*.author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
Проверьте элемент
<Expression>в элементе<JSONPath>в политике. Если он не соответствует синтаксису JSONPath, это причина ошибки. В приведенном выше примере закрывающая квадратная скобка отсутствует, что делает выражение недействительным.Поскольку выражение пути JSON недопустимо, развертывание прокси-сервера API завершается неудачей.
Разрешение
Убедитесь, что значение элемента <Expression> внутри элемента <JSONPath> в политике защиты регулярных выражений является допустимым выражением JSONPath.
Чтобы исправить приведенный выше пример, вы можете добавить отсутствующую закрывающую квадратную скобку к значению элемента <Expression> :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
НичегоToEnforce
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается неудачно с этим сообщением об ошибке:
Error Saving Revision revision_number RegularExpressionProtection policy_name: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Пример сообщения об ошибке
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Пример снимка экрана с ошибкой

Причина
Если в политике RegularExpressionProtection нет элементов <URIPath> , <QueryParam> , <Header> , <FormParam> , <XMLPayload> или <JSONPayload> , развертывание прокси-сервера API завершается неудачно.
Как указано в сообщении об ошибке, политика RegularExpressionProtection должна содержать хотя бы один из этих элементов, включенных в политику: <URIPath> , <QueryParam> , <Header> , <FormParam> , <XMLPayload> или <JSONPayload> .
Диагностика
Определите имя политики RegularExpressionProtection , в которой произошла ошибка. Вы можете найти его в сообщении об ошибке. Например, в следующей ошибке имя политики —
Regular-Expression-Protection-1:RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Проверьте неисправную политику защиты регулярных выражений (определенную на шаге 1 выше). Если в политике нет хотя бы одного из следующих элементов:
<URIPath>,<QueryParam>,<Header>,<FormParam>,<XMLPayload>или<JSONPayload>, то это причина ошибки.Например, следующая политика защиты регулярных выражений не содержит ни одного из вышеупомянутых элементов:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> </RegularExpressionProtection>Поскольку ни один из обязательных элементов не присутствует в политике извлечения переменных, развертывание прокси-сервера API завершается неудачно.
Разрешение
Убедитесь, что политика RegularExpressionProtection содержит хотя бы один из этих обязательных элементов: <URIPath> , <QueryParam> , <Header> , <FormParam> , <XMLPayload> или <JSONPayload> . Например:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
NoPatternsToEnforce
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number RegularExpressionProtection policy_name: No patterns to enforce in payload_name.
Пример сообщения об ошибке
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
Пример снимка экрана с ошибкой

Причина
Если какой-либо из элементов верхнего уровня ( <URIPath> , <QueryParam> , <Header> , <FormParam> , <XMLPayload> или <JSONPayload> ) не имеет элемента <Pattern> , определенного в политике RegularExpressionProtection , то развертывание прокси-сервера API не работает.
Диагностика
Определите имя политики RegularExpressionProtection , в которой произошла ошибка, и дочернего элемента, у которого нет элемента
<Pattern>. Оба эти элемента можно найти в сообщении об ошибке.Например, в следующей ошибке имя политики —
Regular-Expression-Protection-1, а дочерний элемент —XPath:RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
- Проверьте неисправную политику защиты регулярных выражений и убедитесь, что дочерний элемент, определенный на шаге 1, не имеет элемента
<Pattern>. Если в нем не существует элемента<Pattern>, то это и есть причина ошибки.Например, в следующей политике нет элемента
<Pattern>внутри<XPath>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> </XPath> </XMLPayload> </RegularExpressionProtection>
Поскольку элемент
<XPath>не имеет элемента<Pattern>, развертывание прокси-сервера API завершается неудачно.
Разрешение
Убедитесь, что для любого из элементов <URIPath> , <QueryParam> , <Header> , <FormParam> , <XMLPayload> или <JSONPayload> указан хотя бы один <Pattern> . См. политику RegularExpressionProtection для получения информации о том, как правильно указать элемент.
Чтобы исправить приведенный выше пример, мы могли бы просто добавить элемент <Pattern> к элементу <XPath> под <XMLPayload> :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
NONEmptyPrefixMappedToEmptyURI
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Non-empty prefix prefix_name cannot be mapped to empty uri.
Пример сообщения об ошибке
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Пример снимка экрана с ошибкой

Причина
Эта ошибка возникает, если политика RegularExpressionProtection имеет префикс, определенный в элементе <Namespace> в элементе <XMLPayload> , но URI не определен.
Диагностика
Определите политику RegularExpressionProtection , в которой произошла ошибка, и имя префикса, который не сопоставлен с URI. Оба эти элемента можно найти в сообщении об ошибке.
Например, в следующей ошибке имя политики — Regular Expression Protection-1, а префикс — apigee:
RegularExpressionProtection Regular-Expression-Protection-1: 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"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee"/> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Убедитесь, что элемент
<Namespace>с определенным префиксом, указанным на шаге 2, имеет действительный URI. Если URI отсутствует, это причина ошибки.В примере политики защиты регулярных выражений, показанном выше, обратите внимание, что нет URI, соответствующего элементу
<Namespace>с префиксом apigee; поэтому вы получаете ошибку:Non-empty prefix apigee cannot be mapped to empty uri.
Разрешение
Убедитесь, что все элементы <Namespace> , определенные с помощью префикса, имеют соответствующий URI в политике извлечения переменных. Например:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Повторяющийся префикс
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Duplicate prefix prefix_name.
Пример сообщения об ошибке
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Пример снимка экрана с ошибкой

Причина
Эта ошибка возникает, если политика RegularExpressionProtection имеет один и тот же префикс, определенный более одного раза в элементе <Namespace> в элементе <XMLPayload> .
Например, эта ошибка возникает, поскольку префикс apigee определен дважды, как показано ниже:
<Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace>
Диагностика
Определите политику RegularExpressionProtection , в которой произошла ошибка, и имя префикса. Оба эти элемента можно найти в сообщении об ошибке.
Например, в следующей ошибке имя политики — Regular Expression Protection-1, а префикс — apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
В неудавшемся XML-файле политики защиты регулярных выражений убедитесь, что имя префикса, установленное в элементе
<Namespace>под элементом<XMLPayload>, соответствует имени префикса, указанному в сообщении об ошибке (шаг № 1 выше).Например, следующая политика определяет префикс с именем apigee в элементе
<Namespace>, который соответствует тому, что указано в сообщении об ошибке:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Определите, был ли элемент
<Namespace>с определенным префиксом, указанным на шаге 2, определен более одного раза. Если он определен более одного раза, то это и есть причина ошибки.В приведенном выше примере политики защиты регулярных выражений обратите внимание, что элемент
<Namespace>с префиксом apigee был определен дважды; поэтому вы получаете ошибку:Duplicate prefix apigee.
Разрешение
Убедитесь, что для каждого префикса в элементах <Namespace> в политике RegularExpressionProtection существует только одно определение. Например:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Пустое выражениеXPathExpression
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty XPath expression.
Пример сообщения об ошибке
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Пример снимка экрана с ошибкой

Причина
Если в политике RegularExpressionProtection в элементе <XPath> не установлен элемент <Expression> , развертывание прокси-сервера API завершается неудачей.
Диагностика
Определите неисправную политику защиты регулярных выражений по сообщению об ошибке. Например, в следующей ошибке имя политики — Regular-Expression-Protection-1:
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
В неудавшемся XML-коде политики защиты регулярных выражений определите, существует ли элемент
<XMLPayload>с дочерним элементом<XPath>, в котором не определен элемент<Expression>, или элементу<Expression>не присвоено какое-либо значение. Если да, то это причина ошибки.Например, вот политика защиты регулярных выражений, имеющая элемент
<XMLPayload>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression></Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Поскольку внутри элемента
<XPath>имеется пустой элемент<Expression>, развертывание прокси-сервера API завершается неудачно.
Разрешение
Убедитесь, что политика RegularExpressionProtection имеет непустой и допустимый элемент <Expression> , определенный в элементе <XPath> . Например:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Пустое выражениеJSONPathExpression
Сообщение об ошибке
Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается сбоем с этим сообщением об ошибке:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty JSONPath expression.
Пример сообщения об ошибке
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Пример снимка экрана с ошибкой

Причина
Если в политике RegularExpressionProtection в элементе <JSONPath> не установлен элемент <Expression> , развертывание прокси-сервера API завершается неудачно.
Диагностика
Определите неисправную политику защиты регулярных выражений по сообщению об ошибке. Например, в следующей ошибке имя политики — Regular-Expression-Protection-1:
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
В неудавшемся XML-коде политики защиты регулярных выражений определите, существует ли элемент
<JSONPayload>с дочерним элементом<JSONPath>, в котором не определен элемент<Expression>, или элементу<Expression>не присвоено какое-либо значение. Если да, то это причина ошибки.Например, вот политика защиты регулярных выражений, имеющая элемент
<JSONPayload>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression></Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
Поскольку внутри элемента
<JSONPath>имеется пустой элемент<Expression>, развертывание прокси-сервера API завершается неудачно.
Разрешение
Убедитесь, что политика RegularExpressionProtection имеет непустой и допустимый элемент <Expression> , определенный в элементе <JSONPath> . Например:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>