פתרון בעיות בנוגע לשגיאות בפריסת המדיניות בנושא מיפוי ערכים מרכזיים

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

InvalidIndex

הודעת שגיאה

כשפורסים את ה-API של ה-API דרך ממשק המשתמש של Edge או Edge management API, מוצגת הודעת השגיאה הבאה:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

הודעת שגיאה לדוגמה

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

צילום מסך של שגיאה לדוגמה

סיבה

אם המאפיין index שצוין באלמנט <Get> של מדיניות פעולות במפת ערך המפתח הוא אפס או מספר שלילי, הפריסה של שרת ה-proxy של ה-API תיכשל. האינדקס מתחיל מ-1, כך שאינדקס של אפס או מספר שלם שלילי נחשב לא חוקי.

לדוגמה, אם הערך index שצוין הוא 0 ברכיב <Get> של מדיניות פעולות במפת ערכים של מפתח, הפריסה של שרת ה-proxy של ה-API תיכשל.

אבחון

  1. יש לזהות את המדיניות בנושא פעולות במפת הערכים של המפתחות שבה אירעה השגיאה ואת האינדקס הלא חוקי. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא GetKVM והאינדקס הלא חוקי הוא 0:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. צריך לוודא שערך האינדקס שצוין ברכיב <Get> במדיניות בנושא פעולות במפת הערכים של מפתחות נכשל, תואם לערך שזוהה בהודעת השגיאה (שלב 1 למעלה). לדוגמה, במדיניות הבאה מצוין ערך האינדקס כ-0, שתואם לתוכן בהודעת השגיאה:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
        <DisplayName>GetKVM</DisplayName>
        <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
        <Scope>environment</Scope>
        <Get assignTo="foo_variable" index="0">
            <Key>
                <Parameter>FooKey_1</Parameter>
            </Key>
        </Get>
    </KeyValueMapOperations>
    
  3. אם האינדקס שצוין הוא אפס או מספר שלם שלילי, זו הסיבה לשגיאה.

    בדוגמה שלמעלה של המדיניות בנושא פעולות במפת הערכים של המפתחות, ערך האינדקס הוא 0, והוא לא תקין. לכן פריסת ה-API של שרת ה-Proxy נכשלת ומוצגת השגיאה:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

רזולוציה

יש לוודא שמאפיין האינדקס שצוין ברכיב <Get> במדיניות הפעולות במפת ערך המפתח הוא חוקי (מספר שלם שאינו אפס או שלילי).

כדי לתקן את הדוגמה של מדיניות פעולות במפת הערך, שמוצגת למעלה, אפשר לשנות את האינדקס ל-1.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations mapIdentifier="FooKVM" async="false" continueOnError="false" enabled="true" name="GetKVM">
    <DisplayName>GetKVM</DisplayName>
    <ExpiryTimeInSecs>86400</ExpiryTimeInSecs>
    <Scope>environment</Scope>
    <Get assignTo="foo_variable" index="1">
        <Key>
            <Parameter>FooKey_1</Parameter>
        </Key>
    </Get>
</KeyValueMapOperations>

KeyIsMissing

הודעת שגיאה

כשפורסים את ה-API של ה-API דרך ממשק המשתמש של Edge או Edge management API, מוצגת הודעת השגיאה הבאה:

Error Saving Revision revision_number
Error occurred while validation of bean policy_name.xml
Reason: - Non null value expected for element Parameter in Entry.

הודעת שגיאה לדוגמה

Error Saving Revision 3
Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry

צילום מסך של שגיאה לדוגמה

סיבה

השגיאה הזו מתרחשת אם הרכיב <Key> חסר לגמרי, או שהרכיב <Parameter> חסר ברכיב <Key> מתחת לרכיב <Entry> של הרכיב <InitialEntries> במדיניות של פעולות במפת ערכי המפתח.

אבחון

  1. זיהוי המדיניות בנושא פעולות במפת ערכי מפתח שבה אירעה השגיאה. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות של פעולות במפת ערכי המפתחות הוא GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
    
  2. במדיניות לגבי פעולות במפת ערכי מפתח שנכשלו, צריך לבדוק אם יש רכיב <Entry> שחסר בו רכיב <Key> או <Parameter> מתחת ל-<InitialEntries>.

    בהמשך מוצגת דוגמה למדיניות בנושא פעולות במפת ערכים של מפתח, שחסרה בו הרכיב <Parameter> ברכיב <Key>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="FooKVM">
        <DisplayName>GetKVM</DisplayName>
        <Properties/>
        <ExclusiveCache>false</ExclusiveCache>
        <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
        <InitialEntries>
            <Entry>
                <Key/>
                <Value>v1</Value>
            </Entry>
            <Entry>
                <Key>
                    <Parameter>k2</Parameter>
                </Key>
                <Value>v2</Value>
            </Entry>
        </InitialEntries>
    

    במקרה הזה, הרכיב הראשון הוא הגורם לבעיה.

רזולוציה

צריך לוודא שכל רכיבי <Entry> שנמצאים מתחת לרכיב <InitialEntries> במדיניות של פעולות במפת ערכי המפתח כוללים את הרכיב <Key> ואחריו את הרכיב <Parameter>.

כדי לתקן את הדוגמה של מדיניות פעולות במפת ערכי המפתחות, שהוצגה למעלה, הוספה של רכיב <Parameter> פותרת את הבעיה:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="FooKVM">
    <DisplayName>GetKVM</DisplayName>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
    <InitialEntries>
        <Entry>
            <Key>
                <Parameter>k1</Parameter>
            </Key>
            <Value>v1</Value>
        </Entry>
        <Entry>
            <Key>
                <Parameter>k2</Parameter>
            </Key>
            <Value>v2</Value>
        </Entry>
    </InitialEntries>
    ...

ValueIsMissing

הודעת שגיאה

כשפורסים את ה-API של ה-API דרך ממשק המשתמש של Edge או Edge management API, מוצגת הודעת השגיאה הבאה:

Error Saving Revision revision_number
Error occurred while validation of bean policy_name.xml. Reason: - Non null value expected for element Value in Entry.

הודעת שגיאה לדוגמה

Error Saving Revision 3
Error occurred while validation of bean GetKVM.xml.Reason: - Non null value expected for element Value in Entry

צילום מסך של שגיאה לדוגמה

סיבה

השגיאה הזו מתרחשת אם הרכיב <Value> חסר מתחת לרכיב <Entry> של הרכיב <InitialEntries> במדיניות הפעולות במפת ערכי המפתח.

אבחון

  1. זיהוי המדיניות בנושא פעולות במפת ערכי מפתח שבה אירעה השגיאה. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות של פעולות במפת ערכי המפתחות הוא GetKVM.

    Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
    
  2. במדיניות בנושא פעולות במפת ערך מפתח שנכשלו, צריך לבדוק אם יש רכיב <Entry> שחסר בו רכיב <Value> מתחת ל-<InitialEntries>.

    הנה דוגמה למדיניות בנושא פעולות במפת ערכי מפתח שחסרה בה רכיב <Value>:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="testNotEncrypte">
        <DisplayName>GetKVM3</DisplayName>
        <Properties/>
        <ExclusiveCache>false</ExclusiveCache>
        <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
        <InitialEntries>
            <Entry>
                <Key>
                    <Parameter>k1</Parameter>
                </Key>
            </Entry>
            <Entry>
                <Key>
                    <Parameter>k2</Parameter>
                </Key>
                <Value>v2</Value>
            </Entry>
        </InitialEntries>
        ...
    
    

רזולוציה

צריך לוודא שכל רכיבי <Entry> שמתחת לרכיב <InitialEntries> במדיניות הפעולות במפת ערכי המפתח כוללים רכיב <Value>.

כדי לתקן את הדוגמה של מדיניות פעולות במפת ערכי המפתחות, שהוצגה למעלה, הוספה של רכיב <Value> פותרת את הבעיה:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="GetKVM" mapIdentifier="testNotEncrypte">
    <DisplayName>GetKVM3</DisplayName>
    <Properties/>
    <ExclusiveCache>false</ExclusiveCache>
    <ExpiryTimeInSecs>300</ExpiryTimeInSecs>
    <InitialEntries>
        <Entry>
            <Key>
                <Parameter>k1</Parameter>
            </Key>
            <Value>v1</Value>
        </Entry>
        <Entry>
            <Key>
                <Parameter>k2</Parameter>
            </Key>
            <Value>v2</Value>
        </Entry>
    </InitialEntries>
    ...