Normal İfade Koruması politikası dağıtım hatasını giderme

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ılması şu hata mesajıyla başarısız olur:

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ü

InvalidNormalExpression hata metni

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

  1. Hata mesajındaki regularExpressionProtection politikasının adını belirleyin. Örneğin, aşağıdaki hatada regularExpressionProtection politikası adı Regular-Expression-Protection-1:'dir.

    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.
    
  2. Başarısız Normal İfade Koruması politikası XML'indeki 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} öğesinin Pattern> 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çinde belirtilen normal ifadede açılış parantezi eksik. Dolayısıyla, geçersiz bir normal ifade olarak kabul edilir. API Proxy'sinin dağıtımı başarısız olur.

Çözünürlük

NormalExpressionProtection politikasındaki her <Pattern> öğesinin geçerli bir normal ifade içerdiğinden emin olun. Normal ifadelerinizde hata ayıklamak için farklı çevrimiçi 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 aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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ü

XPathCompilationFailed hata metni

Neden

<XPath> öğesinde kullanılan ön ek veya değer, regularExpressionProtection politikasında belirtilen ad alanlarının hiç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 Etkiler? bölümünde bulabilirsiniz.

Teşhis

  1. Hatanın oluştuğu regularExpressionProtection politikasının adını ve kullanılan XPath İfadesini belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.

    Örneğin, aşağıdaki hatada politika adı Regular-Expression-Protection-1 , XPath İfadesi 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.
    
  2. 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, hata mesajındakiyle eşleşen XPath'i /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>
    
  3. regularExpressionProtection politikasındaki <Namespaces> ve <Expression> öğelerini inceleyin. Hata mesajında belirtilen belirli <Expression>, regularExpressionProtection politikasında belirtilen ad alanlarının parçası olmayan bir ön ek veya değer kullanıyorsa hatanın nedeni budur.

    İlgili <XPath> yönergesinin, regularExpressionProtection politikasında notapigee ön ekini kullandığına dikkat edin:

    <Expression>/notapigee:foo/notapigee:bar</Expression>

    Bununla birlikte, notapigee ön eki <Namespace> öğelerinin hiçbirinde tanımlı değildir. Bu nedenle, <XPath> derlemesi dağıtım hatasına neden olur.

Çözünürlük

<XPath> öğeleri altındaki <Expression> öğelerinde kullanılan tüm ad alanlarının regularExpressionProtection politikasında belirtildiğinden emin olun. Yukarıdaki örneği düzeltmek için notapigee ön ekini ad alanlarında belirtilen 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ılması şu hata mesajıyla başarısız olur:

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ü

BeDönüştürülenToNodeset hata metni

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

  1. Hatanın oluştuğu regularExpressionProtection politikasını ve düğüm kümesine dönüştürülemeyen XPath İfadesini belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.

    Örneğin, aşağıdaki hatada politika adı Regular-Expression-Protection-1 , XPath İfadesi ise count(//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.
    
  2. 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ındaki metinle 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>
    
  3. <XPath> öğesinin altındaki <Type> öğesinde ayarlanan değeri inceleyin. <Type> öğesi nodeset ise hatanın nedeni budur.

    Bu örnekte XPath ifadesi, bir veya daha fazla düğüm döndürmeyen count()'dur. Bu nedenle, API Proxy'si 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 için sonucun 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ürebilecek 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ılması şu hata mesajıyla başarısız olur:

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ü

JSONPathCompilationFailed hata metni

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

  1. Hatanın oluştuğu ve geçersiz JSONPath İfadesinin kullanıldığı regularExpressionProtection 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 İfadesi 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.
    
  2. 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> öğesi altındaki Expression öğesini $.store.book[*.author olarak belirtir ve bu hata mesajındaki öğeyle 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>
            <JSONPayload>
                 <JSONPath>
                     <Expression>$.store.book[*.author</Expression>
                     <Pattern>REGEX PATTERN</Pattern>
                     <Pattern>REGEX PATTERN</Pattern>
                 </JSONPath>
                </JSONPayload>
        </RegularExpressionProtection>
    
  3. 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 ifade geçersiz olur.

    JSON Yol İfadesi 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> öğesi 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 aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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ü

NothingToEnforcement hata metni

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 dahil edilen şu öğelerden en az birini içermelidir: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload>.

Teşhis

  1. Hatanın oluştuğu regularExpressionProtection politikasının adını belirleyin. Bu bilgiyi hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı Regular-Expression-Protection-1: şeklindedir

    RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
    
  2. Başarısız Normal İfade Koruması politikasını inceleyin (yukarıdaki 1. adımda tanımlanır). Politikada şu öğelerden biri bile yoksa: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload>, hatanın nedeni budur.

    Örneğin, aşağıdaki Normal İfade Koruması politikasında yukarıda belirtilen öğelerin 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>
    

    Zorunlu öğelerin hiçbiri Değişkenleri Ayıklama politikasında 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 aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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ü

NoPatternsToEnforcement hata metni

Neden

Üst düzey öğelerden herhangi biri (<URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload>), regularExpressionProtection politikasında tanımlı <Pattern> öğesine sahip değilse API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hatanın oluştuğu regularExpressionProtection politikasının adını ve <Pattern> öğesine sahip olmayan alt öğenin adını belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz.

    Örneğin, aşağıdaki hatada politika adı Regular-Expression-Protection-1, alt öğe ise XPath: şeklindedir.

    RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
    
  2. Başarısız Normal İfade Koruması politikasını inceleyin ve 1. adımda tanımlanan alt öğenin <Pattern> öğesine sahip olmadığını doğrulayın. <Pattern> öğesi yoksa hatanın nedeni budur.

    Örneğin, aşağıdaki politikanın <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ığından API Proxy'sinin dağıtımı başarısız olur.

Çözünürlük

<URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> veya <JSONPayload> öğelerinin herhangi birinde en az bir <Pattern> değerinin belirtildiğinden emin olun. Öğeyi doğru şekilde belirtmeyle ilgili bilgi için regularExpressionProtection politikası bölümüne bakın.

Yukarıdaki örneği düzeltmek için <Pattern> öğesini <XMLPayload> 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>

NONBlankPrefixMappedToBlankURI

Hata Mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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ü

NONBlankPrefixMappedToBlankURI hata metni

Neden

Bu hata, regularExpressionProtection politikası için <XMLPayload> öğesi altındaki <Namespace> öğesinde tanımlanmış bir önek varsa ancak hiçbir URI tanımlanmadıysa ortaya çıkar.

Teşhis

  1. Hatanın oluştuğu regularExpressionProtection politikasını ve URI ile eşlenmeyen ö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: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. Başarısız Normal İfade Koruması politikası XML'inde, <XMLPayload> öğesi altındaki <Namespace> öğesinde ayarlanan ön ekin adının hata mesajında tanımlanan ön ek adıyla eşleştiğini doğrulayın (yukarıdaki 1. adım).

    Örneğin, aşağıdaki politika, <Namespace> öğesinde Apigee adlı bir ön eki 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>
    
  3. 2. adımda tanımlanan belirli ön eke sahip <Namespace> öğesinin geçerli bir URI'ye sahip olup olmadığını doğrulayın. URI eksikse hatanın nedeni budur.

    Yukarıda gösterilen Normal İfade Koruması politikası örneğinde, 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ıkla 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ılması şu hata mesajıyla başarısız olur:

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ü

Yinelenen Önek hata metni

Neden

Bu hata, NormalExpressionProtection politikası, <XMLPayload> öğesi altındaki <Namespace> öğesinde aynı ön ekin birden fazla kez tanımlanmış olması durumunda ortaya çıkar.

Örneğin, bu hata, Apigee öneki aşağıda gösterildiği gibi iki kez tanımlandığından oluşur:

<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>

Teşhis

  1. Hatanın oluştuğu regularExpressionProtection 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.
    
  2. Başarısız Normal İfade Koruması politikası XML'inde, <XMLPayload> öğesi altındaki <Namespace> öğesinde ayarlanan ön ekin adının hata mesajında tanımlanan ön ek adıyla eşleştiğini doğrulayın (yukarıdaki 1. adım).

    Örneğin, aşağıdaki politika, <Namespace> öğesinde Apigee adlı bir ön eki 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>
    
  3. 2. adımda tanımlanan belirli ön eke sahip <Namespace> öğesinin bir defadan fazla tanımlanıp tanımlanmadığını belirleyin. Birden çok kez tanımlanmışsa hatanın nedeni budur.

    Yukarıda gösterilen 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

regularExpressionProtection 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 aracılığıyla dağıtılması şu hata mesajıyla başarısız olur:

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ü

BlankXPathExpression hata metni

Neden

regularExpressionProtection politikası için <XPath> öğesi içinde <Expression> öğesi ayarlanmamışsa API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hata mesajındaki başarısız Normal İfade Koruması politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Normal-Expression-Protection-1'dir:

    RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
    
  2. Başarısız Normal İfade Koruma politikası XML'inde, içinde <Expression> öğesi olmayan <XPath> alt öğesi olan 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> öğesine sahip bir Normal İfade Koruması politikasını burada görebilirsiniz:

    <?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 olur.

Çözünürlük

NormalExpressionProtection 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ılması şu hata mesajıyla başarısız olur:

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ü

BlankJSONPathExpression hata metni

Neden

regularExpressionProtection politikası için <JSONPath> öğesi içinde <Expression> öğesi ayarlanmamışsa API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hata mesajındaki başarısız Normal İfade Koruması politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Normal-Expression-Protection-1'dir:

    Error Saving Revision 1
    RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
    
  2. Başarısız Normal İfade Koruma politikası XML'inde, <JSONPath> alt öğesine sahip bir <JSONPayload> öğesinin içinde <Expression> öğesi bulunmayan 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> öğesine sahip bir Normal İfade Koruması politikasını burada görebilirsiniz:

    <?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 olur.

Çözünürlük

NormalExpressionProtection 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>