Esta é a documentação da Apigee e da Apigee híbrida.
    Confira a documentação da Apigee Edge.
  
UnsupportedOperationException
Código do erro
java.lang.UnsupportedOperationException
Corpo da resposta de erro
{
   "fault":{
      "faultstring":"java.lang.UnsupportedOperationException",
      "detail":{
         "errorcode":"Internal Server Error"
      }
   }
}
Causa
Esse erro ocorrerá se o atributo mapIdentifier estiver definido como string vazia na política de operações do mapa de valor de chave.
Diagnóstico
- Examine todas as políticas de operações de mapas de chave-valor no proxy de API específico em que a falha ocorreu. Se houver alguma política de operações de mapa de chave-valor em que o atributo - mapIdentifieresteja definido como uma string vazia, essa é a causa do erro.- Por exemplo, a seguinte política de operações de mapa de chave-valor tem um - mapIdentifiervazio:- <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>
Resolução
Verifique se o atributo mapIdentifier está definido como um mapa de chave-valor válido na política de operações do Mapa de chave-valor.
Para corrigir a política de exemplo mostrada acima, especifique mapIdentifier para um mapa de chave-valor atual 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>
SetVariableFailed
Código do erro
steps.keyvaluemapoperations.SetVariableFailed
Corpo da resposta de erro
{
   "fault":{
      "faultstring":"Failed to set variable variable_name in KeyValueMapStepDefinition policy_name",
      "detail":{
         "errorcode":"steps.keyvaluemapoperations.SetVariableFailed"
      }
   }
}
Exemplo de mensagem de erro
{
   "fault":{
      "faultstring":"Failed to set variable myvar in KeyValueMapStepDefinition EncryptedKVM",
      "detail":{
         "errorcode":"steps.keyvaluemapoperations.SetVariableFailed"
      }
   }
}
Causa
Este erro ocorre se você tentar recuperar um valor de um mapa de valores de chave criptografado e definir
o valor como uma variável que não tenha o prefixo private.. O
prefixo, que é necessário para fins básicos de segurança durante a depuração, oculta os
valores criptografados das sessões de trace e depuração do proxy de API.
Diagnóstico
1.
Identifique a política de operações de mapeamento de valor-chave em que o erro ocorreu e o nome da variável para a qual o valor não pode ser definido. É possível encontrar os dois itens no elemento faultstring da resposta de erro. Por exemplo, no faultstring a seguir, o nome da política é EncryptedKVM e a variável é myvar:
  "faultstring":"Failed to set variable myvar in KeyValueMapStepDefinition EncryptedKVM"
1.
Na política XML de operações do mapa de chave-valor, confirme se o nome da variável especificada no atributo assignTo do elemento <Get> corresponde ao nome da variável identificado na string com falha (etapa 1 acima). Por exemplo, a seguinte política de operações de mapa de chave-valor especifica uma variável chamada myvar no elemento <Get>, que corresponde ao que está em 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>
- Verifique se o mapa de chave-valor especificado no atributo - mapIdentifieré uma KVM criptografada.- Para verificar se uma KVM está criptografada na IU da Apigee: - Na IU da Apigee, clique em Admin no menu de navegação à esquerda.
- Clique em Ambientes.
- Clique em Mapas de chave-valor.
- Encontre o Mapa de chave-valor que você quer usar.
- Clique na seta à esquerda do nome para expandir a lista de valores.
- Os mapas de chave-valor criptografados mostram valores mascarados com asteriscos na IU (*****), conforme mostrado em Sobre as KVMs criptografadas.
 
- Se o mapa de chave-valor for uma KVM criptografada e o nome da variável usado no atributo - assignTodo elemento- <Get>não tiver o prefixo- privateessa será a causa do erro.- No exemplo de política de operações de mapa de chave-valor mostrado acima, o mapa de chave-valor - testEncryptedé criptografado e o nome da variável- myvarnão tem o prefixo- private. Portanto, você receberá o código do erro:- steps.keyvaluemapoperations.SetVariableFailed
Resolução
Certifique-se de que o nome da variável tenha o prefixo private. no atributo assignTo
do elemento <Get> na política de operações de mapeamento de valor-chave se o mapa de chave-valor
usado for criptografado.
Para corrigir o exemplo de política de operações de mapeamento de valor-chave mostrado acima, você pode modificar
o valor do atributo assignTo para 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>