Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
InvalidRegularExpression
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
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.
Örnek hata mesajı
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.
Örnek hata ekran görüntüsü

Neden
RegularExpressionProtection politikasının <Pattern> öğesindeki normal ifade geçerli değilse API proxy'sinin dağıtımı başarısız olur.
Teşhis
Hata mesajından RegularExpressionProtection politikasının adını belirleyin. Örneğin, aşağıdaki hatada RegularExpressionProtection policy adı
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.
Başarısız olan normal ifade koruması politikası XML'sindeki tüm
<Pattern>öğelerini inceleyin.<Pattern>öğelerinden herhangi birinin geçersiz normal ifadeye sahip olup olmadığını kontrol edin.<Pattern>öğelerinden herhangi birinde geçersiz normal ifade varsa hatanın nedeni budur.Örneğin, aşağıdaki politika,
Pattern>değerinifoo){2}olarak belirtir. Bu, geçersiz normal ifade olarak kabul edilir:<?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>Yukarıdaki örnekte,
<Pattern>içinde belirtilen normal ifadede açılış parantezi eksik. Bu nedenle, geçersiz bir normal ifade olarak kabul edilir. Bu nedenle, API proxy'sinin dağıtımı başarısız olur.
Çözünürlük
RegularExpressionProtection policy içindeki her <Pattern> öğesinin geçerli bir normal ifade içerdiğinden emin olun. Normal ifadelerinizin hatalarını ayıklamak için farklı online veya çevrimdışı normal ifade araçlarını arayabilirsiniz.
Yukarıda gösterilen örnek Normal İfade Koruması politikasını düzeltmek için eksik parantezleri ekleyin:
<?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
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
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.
Örnek hata mesajı
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.
Örnek hata ekran görüntüsü

Neden
<XPath> öğesinde kullanılan önek veya değer, RegularExpressionProtection politikasında belirtilen ad alanlarından herhangi birinin parçası değilse API proxy'sinin dağıtımı başarısız olur.
Ad alanları, XPath ve önek hakkında daha fazla bilgiyi XML Ad Alanları ve Bunların XPath ve XSLT'yi Nasıl Etkilediği başlıklı makalede bulabilirsiniz.
Teşhis
Hatanın oluştuğu RegularExpressionProtection politikası adını ve kullanılan XPath ifadesini belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.
Örneğin, aşağıdaki hatada politika adı
Regular-Expression-Protection-1, XPath ifadesi ise/notapigee:foo/notapigee:bar:'dir.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.
Başarısız olan normal ifade koruması politikası XML'sinde,
Expressionöğesinde ayarlanan XPath'in hata mesajında tanımlanan XPath ile eşleştiğini doğrulayın (yukarıdaki 1. adım).Örneğin, aşağıdaki politikada XPath, hata mesajındakiyle eşleşen
/notapigee:foo/notapigee:barolarak belirtilmiştir:<?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>
- RegularExpressionProtection politikasındaki
<Namespaces>ve<Expression>öğelerini inceleyin. Hata mesajında belirtilen<Expression>, RegularExpressionProtection politikası içinde belirtilen ad alanlarının parçası olmayan bir önek veya değer kullanıyorsa hatanın nedeni budur.Örnek RegularExpressionProtection politikası içinde belirli
<XPath>öğesininnotapigeeönekini kullandığını unutmayın:<Expression>/notapigee:foo/notapigee:bar</Expression>
Ancak
notapigeeöneki,<Namespace>öğelerinin hiçbirinde tanımlanmamıştır. Bu nedenle,<XPath>derlemesi başarısız olur ve dağıtım hatası oluşur.
Çözünürlük
<XPath> öğeleri altındaki <Expression> öğelerinde kullanılan tüm ad alanlarının RegularExpressionProtection politikasında beyan edildiğinden emin olun. Yukarıdaki örneği düzeltmek için notapigee ön ekini, ad alanlarında beyan edilen apigee ile değiştirebilirsiniz:
<?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>
CannotBeConvertedToNodeset
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
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.
Örnek hata mesajı
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.
Örnek hata ekran görüntüsü

Neden
Normal İfade Politikası'nda <XPath> ifadesi varsa ve <Type> öğesi nodeset olarak tanımlanmışsa ancak ifade nodeset'e dönüştürülemiyorsa API proxy'sinin dağıtımı başarısız olur.
Teşhis
Hatanın oluştuğu RegularExpressionProtection politikası ile düğüm kümesine dönüştürülemeyen XPath ifadesini belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.
Örneğin, aşağıdaki hatada politika adı
Regular-Expression-Protection-1, XPath ifadesi isecount(//apigee:foo):'dir.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.
Başarısız olan normal ifade koruması politikası XML'sinde,
<XPath>öğesinin<Expression>öğesinde ayarlanan XPath'in, hata mesajında tanımlanan XPath ile eşleştiğini doğrulayın (yukarıdaki 1. adım).Örneğin, aşağıdaki politika
count(//apigee:foo)olarak belirtir. Bu, hata mesajındakiyle eşleşir:<?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>
<XPath>öğesinin altındaki<Type>öğesinde ayarlanan değeri inceleyin.<Type>öğesinodesetise hatanın nedeni budur.Bu örnekte, bir veya daha fazla düğüm döndürmeyen XPath ifadesi count()'dur. Bu nedenle, API proxy'sinin dağıtımı başarısız olur.
Çözünürlük
<Type> öğesi düğüm kümesi olarak ayarlanmışsa <XPath> içinde ayarlanan <Expression> öğesinin sonucunun bir veya daha fazla düğüm olduğundan emin olun. Alternatif olarak, <Type> öğesini kullanım alanınıza göre daha uygun bir değerle değiştirin.
Yukarıdaki örneği düzeltmek için <Expression> öğesini düğümleri döndürebilen farklı bir değerle değiştirebilirsiniz:
<?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>
JSONPathCompilationFailed
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
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.
Örnek hata mesajı
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.
Örnek hata ekran görüntüsü

Neden
Bir Normal İfade Koruması politikasının <JSONPath> öğesi altındaki <Expression> öğesi geçersiz bir JSONPath ifadesine ayarlanırsa API proxy'sinin dağıtımı başarısız olur.
Teşhis
Hatanın oluştuğu RegularExpressionProtection politikası adını ve geçersiz JSONPath ifadesinin kullanıldığı yeri belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.
Örneğin, aşağıdaki hatada politika adı
Regular-Expression-Protection-1, JSONPath ifadesi ise$.store.book[*.author:'dir.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.
Başarısız olan normal ifade koruma politikası XML'sinde,
Expressionöğesinde ayarlanan JSONPath'in hata mesajında tanımlanan JSONPath ile eşleştiğini doğrulayın (yukarıdaki 1. adım).Örneğin, aşağıdaki politika,
<JSONPath>öğesi altındakiExpressionöğesini, hata mesajındakiyle eşleşen$.store.book[*.authorolarak belirtir:<?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>
Politikadaki
<JSONPath>öğesi altındaki<Expression>öğesini inceleyin. JSONPath söz dizimiyle eşleşmiyorsa hatanın nedeni budur. Yukarıdaki örnekte, kapatma köşeli parantezi eksik olduğundan ifade geçersizdir.JSON yolu ifadesi geçersiz olduğundan API proxy'sinin dağıtımı başarısız olur.
Çözünürlük
Normal İfade Koruması politikasındaki <JSONPath> öğesinin içindeki <Expression> öğesinin değerinin geçerli bir JSONPath ifadesi olduğundan emin olun.
Yukarıda gösterilen örneği düzeltmek için <Expression> öğe değerine eksik olan kapatma köşeli parantezini ekleyebilirsiniz:
<?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>
NothingToEnforce
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
Error Saving Revision revision_number RegularExpressionProtection policy_name: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Örnek hata mesajı
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Örnek hata ekran görüntüsü

Neden
RegularExpressionProtection politikası <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload> öğelerini içermiyorsa API proxy'sinin dağıtımı başarısız olur.
Hata mesajında belirtildiği gibi, RegularExpressionProtection politikası, politika içinde şu öğelerden en az birini içermelidir: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload>.
Teşhis
Hataya neden olan RegularExpressionProtection politikasının adını belirleyin. Bu kodu hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı
Regular-Expression-Protection-1:RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Başarısız olan normal ifade koruması politikasını (yukarıdaki 1. adımda belirtilmiştir) inceleyin. Politikada şu öğelerden en az biri yoksa:
<URIPath>,<QueryParam>,<Header>,<FormParam>,<XMLPayload>veya<JSONPayload>, hatanın nedeni budur.Örneğin, aşağıdaki normal ifade koruma politikasında yukarıda belirtilen öğelerden hiçbiri yoktur:
<?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>Değişkenleri Çıkarma politikasında zorunlu öğelerin hiçbiri bulunmadığından API proxy'sinin dağıtımı başarısız olur.
Çözünürlük
RegularExpressionProtection politikasında şu zorunlu öğelerden en az birinin bulunduğundan emin olun: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload>. Örneğin:
<?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
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
Error Saving Revision revision_number RegularExpressionProtection policy_name: No patterns to enforce in payload_name.
Örnek hata mesajı
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
Örnek hata ekran görüntüsü

Neden
Üst düzey öğelerden (<URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload>) herhangi birinde RegularExpressionProtection politikası içinde tanımlanmış bir <Pattern> öğesi yoksa API proxy'sinin dağıtımı başarısız olur.
Teşhis
Hatanın oluştuğu RegularExpressionProtection politikasının adını ve
<Pattern>öğesine sahip olmayan alt öğeyi belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.Örneğin, aşağıdaki hatada politika adı
Regular-Expression-Protection-1, alt öğe iseXPath:'dir.RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
- Başarısız olan normal ifade koruması politikasını inceleyin ve 1. adımda tanımlanan alt öğenin
<Pattern>öğesine sahip olup olmadığını doğrulayın.<Pattern>öğesi yoksa hatanın nedeni budur.Örneğin, aşağıdaki politikada
<XPath>içinde<Pattern>öğesi yoktur:<?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>öğesinde<Pattern>öğesi bulunmadığı için API proxy'sinin dağıtımı başarısız oluyor.
Çözünürlük
<URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload> öğelerinden herhangi birinde en az bir <Pattern> belirtildiğinden emin olun. Öğenin nasıl doğru şekilde belirtileceği hakkında bilgi için RegularExpressionProtection politikasına bakın.
Yukarıdaki örneği düzeltmek için <Pattern> öğesini <XMLPayload> öğesinin altındaki <XPath> öğesine ekleyebiliriz:
<?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
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Non-empty prefix prefix_name cannot be mapped to empty uri.
Örnek hata mesajı
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Örnek hata ekran görüntüsü

Neden
Bu hata, RegularExpressionProtection politikası, <XMLPayload> öğesi altındaki <Namespace> öğesinde tanımlanmış bir öneke sahipse ancak URI tanımlanmamışsa oluşur.
Teşhis
Hatanın oluştuğu RegularExpressionProtection politikası ile URI'ye eşlenmemiş önekin adını belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.
Örneğin, aşağıdaki hatada politika adı Regular Expression Protection-1, önek ise apigee'dir:
RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Başarısız olan normal ifade koruma politikası XML'sinde,
<XMLPayload>öğesi altındaki<Namespace>öğesinde ayarlanan önek adının, hata mesajında tanımlanan önek adıyla (yukarıdaki 1. adım) eşleştiğini doğrulayın.Örneğin, aşağıdaki politika,
<Namespace>öğesinde apigee adlı bir önek belirtir. Bu önek, hata mesajındakiyle eşleşir:<?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>
2. adımda tanımlanan belirli önekle birlikte
<Namespace>öğesinin geçerli bir URI'ye sahip olup olmadığını doğrulayın. URI eksikse hatanın nedeni budur.Yukarıda gösterilen örnek normal ifade koruma politikasında, apigee önekine sahip
<Namespace>öğesine karşılık gelen bir URI olmadığını fark edeceksiniz. Bu nedenle, şu hatayı alırsınız:Non-empty prefix apigee cannot be mapped to empty uri.
Çözünürlük
Önekle tanımlanan tüm <Namespace> öğelerin, Değişkenleri Çıkarma politikasında karşılık gelen bir URI'ye sahip olduğundan emin olun. Örneğin:
<?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>
DuplicatePrefix
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Duplicate prefix prefix_name.
Örnek hata mesajı
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Örnek hata ekran görüntüsü

Neden
Bu hata, RegularExpressionProtection politikası, <XMLPayload> öğesi altındaki <Namespace> öğesinde aynı öneki birden fazla kez tanımlamışsa oluşur.
Örneğin, aşağıdaki örnekte gösterildiği gibi apigee öneki iki kez tanımlandığı için bu hata oluşur:
<Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace>
Teşhis
Hataya neden olan RegularExpressionProtection politikası ve önek adını belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.
Örneğin, aşağıdaki hatada politika adı Regular Expression Protection-1, önek ise apigee'dir:
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Başarısız olan normal ifade koruma politikası XML'sinde,
<XMLPayload>öğesi altındaki<Namespace>öğesinde ayarlanan önek adının, hata mesajında tanımlanan önek adıyla (yukarıdaki 1. adım) eşleştiğini doğrulayın.Örneğin, aşağıdaki politika,
<Namespace>öğesinde apigee adlı bir önek belirtir. Bu önek, hata mesajındakiyle eşleşir:<?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>
2. adımda tanımlanan belirli öneke sahip
<Namespace>öğesinin birden fazla kez tanımlanıp tanımlanmadığını belirleyin. Birden fazla kez tanımlanmışsa hatanın nedeni budur.Yukarıda gösterilen örnek Normal İfade Koruması politikasında, apigee önekine sahip
<Namespace>öğesinin iki kez tanımlandığını fark edeceksiniz. Bu nedenle, şu hatayı alırsınız:Duplicate prefix apigee.
Çözünürlük
RegularExpressionProtection politikasındaki <Namespace> öğelerinde her önek için yalnızca bir tanım olduğundan emin olun. Örneğin:
<?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>
EmptyXPathExpression
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty XPath expression.
Örnek hata mesajı
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Örnek hata ekran görüntüsü

Neden
RegularExpressionProtection politikası, <XPath> öğesi içinde <Expression> öğesi ayarlanmamışsa API proxy'sinin dağıtımı başarısız olur.
Teşhis
Hata mesajından başarısız olan normal ifade koruma politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Regular-Expression-Protection-1'dir:
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Başarısız olan normal ifade koruması politikası XML'sinde, içinde
<Expression>öğesi tanımlanmamış veya<Expression>öğesi herhangi bir değere ayarlanmamış<XPath>alt öğesine sahip bir<XMLPayload>öğesi olup olmadığını belirleyin. Bu durumda hatanın nedeni budur.Örneğin, aşağıda
<XMLPayload>öğesi içeren bir normal ifade koruma politikası verilmiştir:<?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>öğesi içinde boş bir<Expression>öğesi olduğundan API proxy'sinin dağıtımı başarısız oluyor.
Çözünürlük
RegularExpressionProtection politikasının, <XPath> öğesi altında tanımlanmış boş olmayan ve geçerli bir <Expression> öğesine sahip olduğundan emin olun. Örneğin:
<?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>
EmptyJSONPathExpression
Hata Mesajı
API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty JSONPath expression.
Örnek hata mesajı
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Örnek hata ekran görüntüsü

Neden
RegularExpressionProtection politikası, <JSONPath> öğesi içinde <Expression> öğesi ayarlanmamışsa API proxy'sinin dağıtımı başarısız olur.
Teşhis
Hata mesajından başarısız olan normal ifade koruma politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Regular-Expression-Protection-1'dir:
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Başarısız olan normal ifade koruması politikası XML'sinde, içinde
<Expression>öğesi tanımlanmamış veya<Expression>öğesi herhangi bir değere ayarlanmamış<JSONPath>alt öğesi olan bir<JSONPayload>öğesi olup olmadığını belirleyin. Bu durumda hatanın nedeni budur.Örneğin,
<JSONPayload>öğesi içeren bir Normal İfade Koruması politikası aşağıda verilmiştir:<?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>öğesi içinde boş bir<Expression>öğesi olduğundan API proxy'sinin dağıtımı başarısız oluyor.
Çözünürlük
RegularExpressionProtection politikasının, <JSONPath> öğesi altında tanımlanmış boş olmayan ve geçerli bir <Expression> öğesine sahip olduğundan emin olun. Örneğin:
<?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>