Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
InvalidRegularExpression
Hata Mesajı
API proxy'sinin Edge Kullanıcı Arayüzü veya Edge management API üzerinden dağıtılması şu hata mesajını gösterir:
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
NormalExpressionProtection 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ındaki normalExpressionProtection politikasının adını belirleyin. Örneğin, aşağıdaki hatada regexionProtection policy'nin adı
Regular-Expression-Protection-1:
şeklindedir.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 İfade Koruması politikası XML'sindeki tüm
<Pattern>
öğelerini inceleyin.<Pattern>
öğelerinden herhangi birinin geçersiz normal ifade içerip içermediğini kontrol edin.<Pattern>
öğelerinden herhangi biri geçersiz normal ifade içeriyorsa hatanın nedeni budur.Örneğin, aşağıdaki politika, Geçersiz Normal İfade olarak kabul edilen
foo){2}
içinPattern>
değerini 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> <URIPath> <Pattern>foo){2}</Pattern> </URIPath> <Source>request</Source> </RegularExpressionProtection>
Yukarıdaki örnekte,
<Pattern>
için belirtilen normal ifadede açılış parantezi eksiktir. 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 politikasındaki her <Pattern>
öğesinin geçerli bir normal ifade içerdiğinden emin olun. Normal ifadelerinizde hata ayıklamak için farklı online veya çevrimdışı normal ifade araçları 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 üzerinden dağıtılması şu hata mesajını gösterir:
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 bildirilen ad alanlarından herhangi birinin parçası değilse API proxy'sinin dağıtımı başarısız olur.
Ad alanları, XPath ve ön ek hakkında daha fazla bilgiyi XML Ad Alanları ve XPath ve XSLT'yi Nasıl Etkiledikleri bölümünde bulabilirsiniz.
Teşhis
Hatanın oluştuğu NormalExpressionProtection politikasının adını ve kullanılan XPath ifadesini tanımlayın. 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:
şeklindedir.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 Normal İfade Koruması politikası XML'inde,
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, XPath'i hata mesajındakiyle eşleşen
/notapigee:foo/notapigee:bar
olarak 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> <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>
- NormalExpressionProtection politikasındaki
<Namespaces>
ve<Expression>
öğelerini inceleyin. Hata mesajında belirtilen<Expression>
, regularExpressionProtection politikasında tanımlanan ad alanlarının parçası olmayan bir önek veya değer kullanıyorsa hatanın nedeni budur.Söz konusu
<XPath>
öğesinin, örnek regexionProtection politikasındanotapigee
önekini kullandığına dikkat edin:<Expression>/notapigee:foo/notapigee:bar</Expression>
Bununla birlikte,
notapigee
öneki<Namespace>
öğelerinin hiçbirinde tanımlı değildir; bu nedenle<XPath>
derlemesinin başarısız olması dağıtım hatasına neden olur.
Çözünürlük
<XPath>
öğelerinin altındaki <Expression>
öğelerinde kullanılan tüm ad alanlarının regularExpressionProtection politikasında tanımlandığından emin olun. Yukarıdaki örneği düzeltmek için notapigee
önekini, ad alanlarında tanımlanan 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 üzerinden dağıtılması şu hata mesajını gösterir:
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 <Type>
öğesinin nodeset olarak tanımlandığı bir <XPath>
ifadesi varsa ancak ifade düğüm kümesine dönüştürülemiyorsa API proxy'sinin dağıtımı başarısız olur.
Teşhis
Hatanın oluştuğu NormalExpressionProtection politikasını ve düğüm kümesine dönüştürülemeyen XPath ifadesini tanımlayın. 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):
şeklindedir.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 Normal İfade Koruması politikası XML'inde,
<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, hata mesajındakiyle eşleşen
count(//apigee:foo)
değerini 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> <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>
öğesinodeset
ise hatanın nedeni budur.Bu örnekte, XPath ifadesi bir veya daha fazla düğüm döndürmeyen count()'tur. Bu nedenle API Proxy'sinin dağıtımı başarısız olur.
Çözünürlük
<Type>
öğesi düğüm kümesi olarak ayarlanırsa <XPath>
içinde ayarlanan <Expression>
öğesi 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ştirebilirsiniz.
Yukarıdaki örneği düzeltmek için <Expression>
öğesini, düğüm 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 üzerinden dağıtılması şu hata mesajını gösterir:
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 ve geçersiz JSONPath İfadesinin kullanıldığı NormalExpressionProtection politikasının adını 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:
şeklindedir.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 Normal İfade Koruması politikası XML'inde,
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>
öğesinin altındakiExpression
öğesini, hata mesajındakiyle eşleşen$.store.book[*.author
olarak 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>
öğesinin altındaki<Expression>
öğesini inceleyin. JSONPath söz dizimiyle eşleşmezse hatanın nedeni budur. Yukarıdaki örnekte, kapanış köşeli parantezi eksik olduğundan ifadeyi geçersiz kılar.JSON Yol İfadesi geçersiz olduğundan API Proxy'sinin dağıtımı başarısız oluyor.
Çözünürlük
Normal İfade Koruması politikasındaki <JSONPath>
öğesinin içinde bulunan <Expression>
öğesi 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 kapanış köşeli ayracı 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 üzerinden dağıtılması şu hata mesajını gösterir:
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
NormalExpressionProtection politikası <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
veya <JSONPayload>
öğelerinden hiçbirine sahip değilse API Proxy'sinin dağıtımı başarısız olur.
Hata mesajında belirtildiği gibi, regularExpressionProtection politikası, politikaya şu öğelerden en az birini içermelidir: <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
veya <JSONPayload>
.
Teşhis
Hatanın oluştuğu NormalExpressionProtection politikasının adını belirleyin. Bu bilgiyi hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı
Regular-Expression-Protection-1:
şeklindedirRegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Başarısız olan Normal İfade Koruması politikasını (yukarıdaki 1. adımda tanımlanmıştır) inceleyin. Politika şu öğelerden birini bile içermiyorsa:
<URIPath>
,<QueryParam>
,<Header>
,<FormParam>
,<XMLPayload>
veya<JSONPayload>
, hatanın nedeni budur.Örneğin, aşağıdaki Normal İfade Koruması politikası yukarıda belirtilen öğelerin hiçbirini içermez:
<?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 Ayıklama politikasında zorunlu öğelerin hiçbiri bulunmadığından API proxy'sinin dağıtımı başarısız olur.
Çözünürlük
NormalExpressionProtection politikasının şu zorunlu öğelerden en az birine sahip olduğ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 üzerinden dağıtılması şu hata mesajını gösterir:
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 NormalExpressionProtection politikasında tanımlı <Pattern>
öğesi yoksa API proxy'sinin dağıtımı başarısız olur.
Teşhis
Hatanın oluştuğu NormalExpressionProtection politikasının adını ve
<Pattern>
öğesini içermeyen alt öğeyi tanımlayın. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.Örneğin, aşağıdaki hatada politika adı
Regular-Expression-Protection-1
, alt öğe iseXPath:
şeklindedirRegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
- Başarısız olan Normal İfade Koruması politikasını inceleyin ve 1. adımda tanımlanan alt öğede
<Pattern>
öğesinin olup olmadığını doğrulayın.<Pattern>
öğesi yoksa hatanın nedeni budur.Örneğin, aşağıdaki politika
<XPath>
içinde<Pattern>
öğesi içermez:<?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>
öğesi<Pattern>
öğesi içermediğinden API Proxy'sinin dağıtımı başarısız oluyor.
Çözünürlük
<URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
veya <JSONPayload>
öğelerinden birinde en az bir <Pattern>
değerinin belirtildiğinden emin olun. Öğenin doğru şekilde nasıl belirtileceği hakkında bilgi için NormalExpressionProtection politikası başlıklı makaleye bakın.
Yukarıdaki örneği düzeltmek için <Pattern>
öğesini <XMLPayload>
altındaki <XPath>
öğesine ekleyebilirdik:
<?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 üzerinden dağıtılması şu hata mesajını gösterir:
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, NormalExpressionProtection politikası, <XMLPayload>
öğesi altındaki <Namespace>
öğesinde tanımlı bir öneke sahipse ancak URI tanımlı değilse ortaya çıkar.
Teşhis
Hatanın oluştuğu NormalExpressionProtection politikasını ve URI ile eşlenmeyen ön ekin adını tanımlayın. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.
Örneğin, aşağıdaki hatada politika adı Normal İfade Koruması-1, ön ek ise Apigee'dir:
RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Başarısız Normal İfade Koruması politikası XML'inde,
<XMLPayload>
öğesinin altındaki<Namespace>
öğesinde ayarlanan ön ek adının, hata mesajında tanımlanan ön ek adıyla (yukarıdaki 1. adım) eşleştiğini doğrulayın.Örneğin, aşağıdaki politika
<Namespace>
öğesinde Apigee adında bir ön ek belirtir. Bu ön ek , 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 ön eke sahip
<Namespace>
öğesinin geçerli bir URI'ye sahip olup olmadığını doğrulayın. URI yoksa hatanın nedeni budur.Yukarıda gösterilen Normal İfade Koruması politikasında, Apigee önekine sahip
<Namespace>
öğesine karşılık gelen bir URI olmadığına dikkat edin. Bu nedenle şu hatayı alırsınız:Non-empty prefix apigee cannot be mapped to empty uri.
Çözünürlük
Bir önekle tanımlanan tüm <Namespace>
öğelerinin, Değişkenleri Ayıklama 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 üzerinden dağıtılması şu hata mesajını gösterir:
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ında, <XMLPayload>
öğesi altındaki <Namespace>
öğesinde aynı ön ek birden fazla kez tanımlanmışsa ortaya çıkar.
Örneğin, bu hata, Apigee öneki aşağıda gösterildiği gibi iki kez tanımlandığından ortaya çıkmaktadır:
<Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace>
Teşhis
Hatanın oluştuğu NormalExpressionProtection politikasını ve ön ekin adını belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.
Örneğin, aşağıdaki hatada politika adı Normal İfade Koruması-1, ön ek ise Apigee'dir:
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Başarısız Normal İfade Koruması politikası XML'inde,
<XMLPayload>
öğesinin altındaki<Namespace>
öğesinde ayarlanan ön ek adının, hata mesajında tanımlanan ön ek adıyla (yukarıdaki 1. adım) eşleştiğini doğrulayın.Örneğin, aşağıdaki politika
<Namespace>
öğesinde Apigee adında bir ön ek belirtir. Bu ön ek , 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 bir ön eke sahip
<Namespace>
öğesinin birden fazla kez tanımlanıp tanımlanmadığını belirleyin. Birden fazla kez tanımlanırsa hatanın nedeni budur.Yukarıda gösterilen Örnek Normal İfade Koruması politikasında, Apigee önekine sahip
<Namespace>
öğesinin iki kez tanımlandığına dikkat edin; Bu nedenle şu hatayı alırsınız:Duplicate prefix apigee.
Çözünürlük
normalExpressionProtection politikasındaki <Namespace>
öğelerinde her ön ek 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 üzerinden dağıtılması şu hata mesajını gösterir:
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
NormalExpressionProtection politikası <XPath>
öğesi içinde herhangi bir <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 İfade Koruması politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Normal-Expression-Protection-1 şeklindedir:
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Başarısız olan Normal İfade Koruması politikası XML'inde, içinde
<Expression>
öğesi tanımlı olmayan<XPath>
alt öğesine sahip bir<XMLPayload>
öğesi olup olmadığını veya<Expression>
öğesinin herhangi bir değere ayarlanıp ayarlanmadığını belirleyin. Öyleyse hatanın nedeni budur.Örneğin,
<XMLPayload>
öğ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> <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 bulunduğundan API Proxy'sinin dağıtımı başarısız oluyor.
Çözünürlük
normalExpressionProtection politikası, <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 üzerinden dağıtılması şu hata mesajını gösterir:
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
NormalExpressionProtection politikası <JSONPath>
öğesi içinde herhangi bir <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 İfade Koruması politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Normal-Expression-Protection-1 şeklindedir:
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Başarısız olan Normal İfade Koruması politikası XML'inde, içinde
<Expression>
öğesi tanımlı olmayan<JSONPath>
alt öğesine sahip bir<JSONPayload>
öğesi olup olmadığını veya<Expression>
öğesinin herhangi bir değere ayarlanıp ayarlanmadığını belirleyin. Öyleyse 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 bulunduğundan API Proxy'sinin dağıtımı başarısız oluyor.
Çözünürlük
normalExpressionProtection politikası, <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>