查看 Apigee Edge 說明文件。
前往
Apigee X說明文件。 資訊
InvalidIndex
錯誤訊息
透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
Error Saving Revision revision_number Invalid index index in KeyValueMapStepDefinition policy_name.
錯誤訊息範例
Error Saving Revision 2
Invalid index 0 in KeyValueMapStepDefinition GetKVM.
錯誤螢幕截圖
原因
在鍵/值對應作業政策的 <Get>
元素中,如果指定的 index
屬性為零或負數,API Proxy 部署作業就會失敗。索引從 1
開始,因此系統會將零或負整數的索引視為無效。
舉例來說,在鍵/值對應作業政策的 <Get>
元素中,如果指定的 index
為 0
,API Proxy 的部署作業就會失敗。
診斷
找出發生錯誤的鍵/值對應作業政策和無效的索引。你可以在錯誤訊息中找到這項資訊。舉例來說,在下列錯誤中,政策名稱為
GetKVM
,無效的索引為0
:Invalid index 0 in KeyValueMapStepDefinition GetKVM.
確認失敗的鍵值對應作業政策的
<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>
如果指定的索引是零或負整數,就會產生錯誤。
在上方顯示的鍵/值對應作業政策範例中,索引值是
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
錯誤訊息
透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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>
<InitialEntries>
的 <Entry>
下的 <Key>
元素缺少元素
索引鍵值對應作業政策的元素。
診斷
找出發生錯誤的鍵/值對應作業政策。你可以在錯誤訊息中找到這項資訊。例如,在下列錯誤中,鍵/值對應作業政策的名稱是
GetKVM
。Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Parameter in Entry
在失敗的鍵值對應作業政策中,檢查是否有任何
<Entry>
元素的<InitialEntries>
下方缺少<Key>
或<Parameter>
元素。以下是缺少
<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>
在這種情況下,第一個元素造成問題。
解析度
確認金鑰值對應作業政策中 <InitialEntries>
元素下方的所有 <Entry>
元素,都含有 <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
錯誤訊息
透過 Edge UI 或 Edge Management API 部署 API Proxy 會失敗,並顯示以下錯誤訊息:
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
錯誤螢幕截圖
原因
如果鍵/值對應作業政策的 <InitialEntries>
元素 <Entry>
元素下方缺少 <Value>
元素,就會發生這個錯誤。
診斷
找出發生錯誤的鍵/值對應作業政策。你可以在錯誤訊息中找到這項資訊。例如,在下列錯誤中,鍵/值對應作業政策的名稱是
GetKVM
。Error occurred while validation of bean GetKVM.xml. Reason: - Non null value expected for element Value in Entry
在失敗的鍵值對應作業政策中,檢查
<InitialEntries>
下方是否有任何<Entry>
元素缺少<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> </Entry> <Entry> <Key> <Parameter>k2</Parameter> </Key> <Value>v2</Value> </Entry> </InitialEntries> ...
解析度
確認金鑰值對應作業政策中 <InitialEntries>
元素下方的所有 <Entry>
元素都有 <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>
...