การแก้ปัญหาข้อผิดพลาดในการทำให้นโยบายการดำเนินการของคีย์-ค่าคีย์

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่ เอกสารประกอบของ Apigee X
info

InvalidIndex

ข้อความแสดงข้อผิดพลาด

การติดตั้งใช้งานพร็อกซี API ผ่าน UI ของ 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> ของนโยบายการดำเนินการกับแมปค่าคีย์เป็น 0 หรือจำนวนลบ การติดตั้งใช้งานพร็อกซี API จะล้มเหลว เนื่องจากดัชนีเริ่มต้นจาก 1 ดังนั้นดัชนีที่เป็น 0 หรือจำนวนเต็มลบจะถือว่าไม่ถูกต้อง

ตัวอย่างเช่น หาก index ที่ระบุเป็น 0 ในองค์ประกอบ <Get> ของนโยบายการดำเนินการกับแมปค่าคีย์ การติดตั้งใช้งานพร็อกซี 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 หรือจำนวนเต็มลบ นั่นคือสาเหตุของข้อผิดพลาด

    ในตัวอย่างนโยบายการดำเนินการกับแมปค่าคีย์ที่แสดงด้านบน ค่าดัชนีคือ 0 ซึ่งไม่ถูกต้อง ดังนั้นการติดตั้งใช้งานพร็อกซี API จึงล้มเหลวและแสดงข้อผิดพลาดต่อไปนี้

    Invalid index 0 in KeyValueMapStepDefinition GetKVM.
    

ความละเอียด

ตรวจสอบว่าแอตทริบิวต์ดัชนีที่ระบุในองค์ประกอบ <Get> ของนโยบายการดำเนินการกับแมปค่าคีย์ถูกต้อง (ไม่ใช่ 0 หรือจำนวนเต็มลบ)

หากต้องการแก้ไขตัวอย่างนโยบายการดำเนินการกับแมปค่าคีย์ที่แสดงด้านบน คุณสามารถแก้ไขดัชนีเป็น 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 ผ่าน UI ของ 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 ผ่าน UI ของ 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>
    ...