عیب‌یابی خطای پیاده‌سازی خط‌مشی «عملیات نقشه مقدار کلید»

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

InvalidIndex

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision revision_number
Invalid index index in KeyValueMapStepDefinition policy_name.

نمونه پیام خطا

Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.

نماگرفت خطای نمونه

علت

اگر مشخصه index مشخص‌شده در عنصر <Get> خط‌مشی «عملیات نقشه مقدار کلید» صفر یا عددی منفی باشد، استقرار پراکسی API ناموفق خواهد بود. شاخص از 1 شروع می‌شود، بنابراین شاخص صفر یا عدد صحیح منفی نامعتبر درنظر گرفته می‌شود.

برای مثال، اگر index مشخص‌شده 0 در عنصر <Get> خط‌مشی «عملیات نقشه مقدار کلید» باشد، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «عملیات نقشه مقدار کلید» را که خطا در آن رخ داده است و شاخص نامعتبر را شناسایی کنید. می‌توانید این اطلاعات را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی GetKVM و شاخص نامعتبر 0 است:

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.

  2. تأیید کنید که مقدار نمایه‌ای که در عنصر <Get> خط‌مشی «عملیات نقشه مقدار کلید» ناموفق مشخص شده است با مقدار شناسایی‌شده در پیام خطا (مرحله ۱ در بالا) مطابقت داشته باشد. برای مثال، خط‌مشی زیر مقدار نمایه‌ را به‌عنوان 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» با این خطا ناموفق است:

    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 ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

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 ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

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