Stai visualizzando la documentazione di Apigee e di Apigee.
Visualizza la documentazione di
Apigee Edge.
Eccezione Operazione non supportata
Codice di errore
java.lang.UnsupportedOperationException
Corpo della risposta all'errore
{
"fault":{
"faultstring":"java.lang.UnsupportedOperationException",
"detail":{
"errorcode":"Internal Server Error"
}
}
}
Causa
Questo errore si verifica se l'attributo mapIdentifier
è impostato su una stringa vuota nel criterio Key Value Map Operations.
Diagnosi
Esamina tutti i criteri delle operazioni mappa delle coppie chiave-valore nel proxy API specifico in cui si è verificato l'errore. La presenza di eventuali criteri delle operazioni mappa delle coppie chiave-valore in cui l'attributo
mapIdentifier
è impostato come stringa vuota è la causa dell'errore.Ad esempio, il seguente criterio delle operazioni mappa delle coppie chiave-valore ha un
mapIdentifier
vuoto:<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="StoreKvm" mapIdentifier=""> <DisplayName>StoreKvm</DisplayName> <Properties/> <ExclusiveCache>false</ExclusiveCache> <ExpiryTimeInSecs>300</ExpiryTimeInSecs> <Put override="true"> <Key> <Parameter ref="request.queryparam.key"/> </Key> <Value ref="request.queryparam.value"/> </Put> <Scope>environment</Scope> </KeyValueMapOperations>
Risoluzione
Assicurati che l'attributo mapIdentifier
sia impostato su una mappa chiave-valore valida nel criterio Operazioni mappa delle coppie chiave-valore.
Per correggere il criterio di esempio mostrato sopra, puoi specificare mapIdentifier
per una mappa delle coppie chiave-valore esistente UserLocationMap
.
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="StoreKvm" mapIdentifier="UserLocationMap">
<DisplayName>StoreKvm</DisplayName>
<Properties/>
<ExclusiveCache>false</ExclusiveCache>
<ExpiryTimeInSecs>300</ExpiryTimeInSecs>
<Put override="true">
<Key>
<Parameter ref="request.queryparam.key"/>
</Key>
<Value ref="request.queryparam.value"/>
</Put>
<Scope>environment</Scope>
</KeyValueMapOperations>
SetVariable non riuscita
Codice di errore
steps.keyvaluemapoperations.SetVariableFailed
Corpo della risposta all'errore
{ "fault":{ "faultstring":"Failed to set variable variable_name in KeyValueMapStepDefinition policy_name", "detail":{ "errorcode":"steps.keyvaluemapoperations.SetVariableFailed" } } }
Esempio di messaggio di errore
{
"fault":{
"faultstring":"Failed to set variable myvar in KeyValueMapStepDefinition EncryptedKVM",
"detail":{
"errorcode":"steps.keyvaluemapoperations.SetVariableFailed"
}
}
}
Causa
Questo errore si verifica se cerchi di recuperare un valore da una mappa delle coppie chiave-valore criptate e lo imposti su una variabile il cui nome non ha il prefisso private.
. Il prefisso, richiesto per motivi di sicurezza di base durante il debug, nasconde i valori criptati dalle sessioni proxy e di debug del proxy API.
Diagnosi
1.
Identificare il criterio delle coppie chiave-valore delle operazioni sulla mappa in cui si è verificato l'errore e il nome della variabile su cui non è possibile impostare il valore. Puoi trovare entrambi gli elementi nell'elemento faultstring
della risposta di errore. Ad esempio, nel faultstring
seguente, il nome del criterio è EncryptedKVM
e la variabile è myvar
:
"faultstring":"Failed to set variable myvar in KeyValueMapStepDefinition EncryptedKVM"
1.
Nel file XML del criterio delle operazioni sulla mappa chiave-valore non riuscito, verifica che il nome della variabile specificato nell'attributo assignTo
dell'elemento <Get>
corrisponda al nome della variabile identificato nella stringa di errore (passaggio 1 sopra). Ad esempio, il seguente criterio delle operazioni mappa delle coppie chiave-valore specifica una variabile denominata myvar
nell'elemento <Get>
, che corrisponde a quella dell'elemento faultstring
:
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="testEncrypted">
<DisplayName>KeyValueMapOperations-1</DisplayName>
<Properties/>
<ExclusiveCache>false</ExclusiveCache>
<ExpiryTimeInSecs>300</ExpiryTimeInSecs>
<Get assignTo="myvar" index="1">
<Key>
<Parameter>foo</Parameter>
</Key>
</Get>
<Scope>environment</Scope>
</KeyValueMapOperations>
Verifica se la mappa delle coppie chiave-valore specificata nell'attributo
mapIdentifier
è una KVM criptata.Per verificare se una KVM è criptata nell'interfaccia utente di Apigee:
- Nella UI di Apigee, fai clic su Admin nel menu di navigazione a sinistra.
- Fai clic su Ambienti.
- Fai clic su Mappe chiave-valore.
- Trova la mappa chiave-valore che vuoi utilizzare.
- Fai clic sulla freccia a sinistra del nome per espandere l'elenco dei valori.
- Le mappe con coppie chiave-valore criptate mostrano valori mascherati con asterischi nell'interfaccia utente (*****) come mostrato in Informazioni sulle KVM criptate.
Se la mappa della coppia chiave-valore è una KVM criptata e il nome della variabile utilizzato nell'attributo
assignTo
dell'elemento<Get>
non ha il prefissoprivate
. ed è questa la causa.Nel criterio delle coppie chiave-valore di esempio riportato sopra, la mappa della coppia chiave-valore
testEncrypted
è criptata e il nome della variabilemyvar
non ha il prefissoprivate
. Pertanto, ricevi il codice di errore:steps.keyvaluemapoperations.SetVariableFailed
Risoluzione
Assicurati che il nome della variabile abbia il prefisso private.
nell'attributo assignTo
dell'elemento <Get>
nel criterio Operazioni della mappa delle coppie chiave-valore se la mappa delle coppie chiave-valore utilizzata è criptata.
Per correggere l'esempio delle norme relative alle operazioni mappa delle coppie chiave-valore mostrate sopra, puoi modificare il valore dell'attributo assignTo
in private.myvar
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="testEncrypted">
<DisplayName>KeyValueMapOperations-1</DisplayName>
<Properties/>
<ExclusiveCache>false</ExclusiveCache>
<ExpiryTimeInSecs>300</ExpiryTimeInSecs>
<Get assignTo="private.myvar" index="1">
<Key>
<Parameter>foo</Parameter>
</Key>
</Get>
<Scope>environment</Scope>
</KeyValueMapOperations>