Esta é a documentação da Apigee e da Apigee híbrida.
Confira a documentação da Apigee Edge.
NothingToExtract
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory. Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
Exemplo de mensagem de erro
Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Captura de tela de exemplo
Causa
Se a política não tiver os elementos URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ou JSONPayload
, a implantação do API Proxy falhará , porque não há nada para extrair.
Como indicado na mensagem de erro, a política precisa ter pelo menos um destes elementos incluídos na política: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ou JSONPayload
Diagnóstico
Analise a política nomeada na mensagem de erro. Se a política não tiver ainda um dos seguintes elementos: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ou JSONPayload
, essa é a causa do erro. Por exemplo, a seguinte política não tem nenhum dos elementos mencionados acima:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
</ExtractVariables>
Como nenhum dos elementos obrigatórios está presente na política Extract Variables, a implantação do proxy da API falha.
Resolução
Verifique se a política tem pelo menos um destes elementos obrigatórios: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
, JSONPayload
. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
<Source>request</Source>
<XMLPayload>
<Namespaces/>
<Variable name="age" type="integer">
<XPath>/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NONEmptyPrefixMappedToEmptyURI
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.
Exemplo de mensagem de erro
Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Captura de tela de exemplo
Causa
Esse erro ocorrerá se a política de variáveis de extração tiver um prefixo definido no elemento <Namespace>
no elemento <XMLPayload>
, mas nenhum URI for definido.
Diagnóstico
Identifique a política de variáveis de extração em que o erro ocorreu e o nome do prefixo. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir , o nome da política é
EV-XML-Age
e o prefixo éapigee
:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
No XML de política de extração de variáveis com falha, verifique se o nome do prefixo definido no elemento
<Namespace>
no elemento<XMLPayload>
corresponde ao nome do prefixo identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica um prefixo chamadoapigee
no elemento<Namespace>
, que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="apigee"></Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath> </Variable> </XMLPayload> </ExtractVariables>
Valide se o elemento
<Namespace>
com o prefixo específico identificado na etapa 2 tem um URI válido. Se o URI estiver ausente, essa é a causa do erro.No exemplo de política de extração de variáveis mostrado acima, observe que não há URI correspondente ao elemento
<Namespace>
com o prefixoapigee
; Portanto, você receberá o erro:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Resolução
Verifique se todos os elementos <Namespace>
definidos com um prefixo têm um URI correspondente na política de variáveis de extração. Por exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
</Variable>
</XMLPayload>
</ExtractVariables>
DuplicatePrefix
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Duplicate prefix [prefix_name].
Exemplo de mensagem de erro
Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Captura de tela de exemplo
Causa
Esse erro ocorrerá se a política de variáveis de extração tiver o mesmo prefixo definido mais de uma vez no elemento <Namespace>
, no elemento <XMLPayload>
.
Por exemplo, esse erro ocorre porque o prefixo apigee
é definido duas vezes, conforme mostrado abaixo:
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
Diagnóstico
Identifique a política de variáveis de extração em que o erro ocorreu e o nome do prefixo. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é
EV-XML-Age
e o prefixo éapigee
:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
No XML de política de extração de variáveis com falha, verifique se o nome do prefixo definido no elemento
<Namespace>
no elemento<XMLPayload>
corresponde ao nome do prefixo identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica um prefixo chamadoapigee
no elemento<Namespace>
, que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="gmail">http://mail.google.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <Variable name="legName" type="string <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload> </ExtractVariables>
Determine se o elemento
<Namespace>
com o prefixo específico, identificado na etapa 2, foi definido mais de uma vez. Se ela for definida mais de uma vez, essa é a causa do erro.No exemplo de política de extração de variáveis mostrado acima, observe que o elemento
<Namespace>
com o prefixoapigee
foi definido duas vezes; Portanto, você receberá o erro:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Resolução
Verifique se há apenas uma definição para cada prefixo nos elementos <Namespace>
da política de variáveis de extração. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
</Variable>
</XMLPayload>
</ExtractVariables>
NoXPathsToEvaluate
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no xpaths to evaluate in variable name.
Exemplo de mensagem de erro
Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
Captura de tela de exemplo
Causa
Se a política de variáveis de extração não tiver o elemento <XPath>
no elemento <XMLPayload>
, a implantação do proxy de API falhará com o erro mostrado acima.
Diagnóstico
Identifique a política de extração de variáveis com falha da mensagem de erro. Por exemplo, no erro a seguir, o nome da política é
Extract-Variables-1
.ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
No XML de política de extração de variáveis com falha, verifique se há um elemento
<XMLPayload>
sem o elemento filho<XPath>
. Em caso afirmativo, essa é a causa do erro.Por exemplo, veja uma política de variáveis de extração que tem um elemento
<XMLPayload>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="HostReachable" type="boolean"> </Variable> </XMLPayload> </ExtractVariables>
Como não há elemento
<XPath>
, a implantação do API Proxy falha.
Resolução
Verifique se a política de variáveis de extração tem um elemento <XPath>
definido no elemento <XMLPayload>
. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="HostReachable" type="boolean">
<XPath>/isReachable</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
EmptyXPathExpression
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: XPath expression is empty in variable name.
Exemplo de mensagem de erro
Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.
Captura de tela de exemplo
Causa
Se a política de variáveis de extração tiver uma expressão <XPath>
vazia no elemento <XMLPayload>
, a implantação do proxy de API falhará.
Diagnóstico
Identifique a política de extração de variáveis com falha da mensagem de erro. Por exemplo, no erro a seguir, o nome da política é
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
No XML da política de extração de variáveis com falha, determine se há um elemento
<XMLPayload>
com um elemento filho<XPath>
vazio. Em caso afirmativo, essa é a causa do erro.Por exemplo, veja uma política de variáveis de extração que tem um elemento
<XMLPayload>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="address" type="string"> <XPath></XPath> </Variable> </XMLPayload> </ExtractVariables>
Como há um elemento
<XPath>
vazio no elemento<XMLPayload>
, a implantação do API Proxy falha.
Resolução
Verifique se a política de variáveis de extração tem um elemento <XPath>
não vazio e válido definido no elemento <XMLPayload>
. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="address" type="string">
<XPath>/address</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NoJSONPathsToEvaluate
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.
Exemplo de mensagem de erro
Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
Captura de tela de exemplo
Causa
Se a política de variáveis de extração não tiver o elemento <JSONPath>
dentro do elemento <JSONPayload>
, a implantação do proxy de API falhará com o erro mostrado acima.
Diagnóstico
Identifique a política de extração de variáveis com falha da mensagem de erro. Por exemplo, no erro a seguir, o nome da política é
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
No XML da política de extração de variáveis com falha, determine se há um elemento
<JSONPayload>
sem o elemento filho<JSONPath>
necessário. Em caso afirmativo, essa é a causa do erro.Por exemplo, veja uma política de variáveis de extração que tem o elemento
<JSONPayload>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <JSONPayload> <Variable name="title"> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> </ExtractVariables>
Como não há nenhum elemento filho
<JSONPath>
definido no elemento<JSONPayload>
, a implantação do API Proxy falha.
Resolução
Verifique se a política de variáveis de extração tem um elemento <JSONPath>
definido no elemento <JSONPayload>
. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<JSONPayload>
<Variable name="title">
<JSONPath>$.book.title</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>
EmptyJSONPathExpression
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: JSONPath expression is empty in variable name.
Exemplo de mensagem de erro
Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
Captura de tela de exemplo
Causa
Se a política de variáveis de extração tiver uma expressão <JSONPath>
vazia no elemento <JSONPayload>
, a implantação do proxy de API falhará.
Diagnóstico
Identifique a política de extração de variáveis com falha da mensagem de erro. Por exemplo, no erro a seguir, o nome da política é
Extract-Variables-1
:ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
No XML da política de extração de variáveis com falha, verifique se há um elemento
<JSONPayload>
com um elemento filho<JSONPath>
vazio. Em caso afirmativo, essa é a causa do erro.Por exemplo, veja uma política de variáveis de extração que tem um elemento
<JSONPayload>
:<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <JSONPayload> <Variable name="account_number" type="integer"> <JSONPath></JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> </ExtractVariables>
Como há um elemento
<JSONPath>
vazio no elemento<JSONPayload>
, a implantação do API Proxy falha.
Resolução
Verifique se a política de variáveis de extração tem um elemento <JSONPath>
não vazio e válido definido no elemento <JSONPayload>
. Exemplo:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<JSONPayload>
<Variable name="account_number" type="integer">
<JSONPath>$.account.number</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>
MissingName
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]
Exemplo de mensagem de erro
Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
Captura de tela de exemplo
Causa
Se a política de variáveis de extração não tiver o atributo name
em nenhum dos elementos de política, como QueryParam
, Header
, FormParam
ou Variable
, quando necessário, a implantação de o proxy da API falhará.
Por exemplo, este erro ocorrerá se o atributo name
estiver ausente em um elemento Variable
.
Diagnóstico
Identifique o nome da política de variáveis de extração em que o erro ocorreu e o elemento no qual o atributo
name
está ausente. Você encontra esses itens na mensagem de erro. Por exemplo, no erro a seguir, o nome da política éExtract-Variables-1
e o nome do elemento éVariable
:Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
No XML da política de extração de variáveis com falha, verifique se todos os elementos com o nome determinado na etapa 1 acima têm um atributo
name
. Se houver algum elemento em que o atributo de nome esteja ausente, essa é a causa do erro.Por exemplo, a seguinte política de variáveis de extração tem o elemento
<Variable>
definido:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Variable type="boolean"> <Pattern>{isAccountActive}</Pattern> </Variable> </ExtractVariables>
Observe que o atributo
name
está ausente no elementoVariable
, então a implantação do API Proxy falha.
Resolução
Verifique se a política de variáveis de extração contém o atributo name
obrigatório para os elementos QueryParam
, Header
, FormParam
ou Variable
. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Variable name="account_active" type="boolean">
<Pattern>{isAccountActive}</Pattern>
</Variable>
</ExtractVariables>
PatternWithoutVariable
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Saving Revision [revision_number] Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]
Exemplo de mensagem de erro
Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
Captura de tela de exemplo
Causa
Se a política de variáveis de extração não tiver uma variável especificada no elemento <Pattern>
, a implantação do proxy de API falhará. O elemento <Pattern>
requer o nome da variável em que os dados extraídos serão armazenados.
Diagnóstico
Identifique o nome da política de variáveis de extração em que o erro ocorreu e o padrão no qual a variável está ausente. Você pode encontrar esses itens na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é
Extract-Variables-1
e o nome do elemento é/a/b
:Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
No XML da política de extração com falha, verifique se o padrão definido no elemento
<Pattern>
corresponde ao padrão identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica um padrão/a/b
, que corresponde ao que está na mensagem de erro:Por exemplo, veja uma política de variáveis de extração que tem três elementos
<Pattern>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/</Pattern> <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> </ExtractVariables>
Verifique se o elemento
<Pattern>
identificado na etapa 2 não tem uma variável. As variáveis precisam ser colocadas entre chaves. Se o padrão não tiver uma variável, essa é a causa do erro.O elemento
<Pattern>
que tem o padrão /a/b não inclui uma variável. Portanto, a implantação do proxy da API falha<Pattern ignoreCase="true">/a/b/</Pattern>
Resolução
Garanta que todos os elementos <Pattern>
incluam uma variável (um nome entre
chaves). Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-1">
<Source>request</Source>
<URIPath>
<Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
</URIPath>
<VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>
CannotBeConvertedToNodeset
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Deploying Revision [revision_number] ExtractVariables [policy_name]: Result of xpath [policy_name] cannot be converted to nodeset. Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
Exemplo de mensagem de erro
Error Deploying Revision 4 to test
ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
Captura de tela de exemplo
Causa
Se a política de variáveis de extração tiver uma expressão <XPath>
em que o tipo <Variable>
é definido como nodeset, mas a expressão não puder ser convertida em nodeset, a implantação do proxy de API falhará.
Diagnóstico
Identifique a política de extração de variáveis em que o erro ocorreu e o XPath que não pode ser convertido para o conjunto de nós. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir , o nome da política é
Extract-Variables-1
e o XPath é123
.ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
No XML da política de extração com falha, verifique se o XPath definido no elemento
<XPath>
corresponde ao XPath identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica ocomo 123
, que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>visitor</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="age" type="nodeset"> <XPath>123</XPath> </Variable> </XMLPayload> </ExtractVariables>
Examine o tipo do elemento
<Variable>
correspondente ao<XPath>
identificado na etapa 2 acima. Se o tipo<Variable>
fornodeset
, essa é a causa do erro.A expressão
<XPath>
é123
no exemplo da política de variáveis de extração.<XPath>123</XPath>
A expressão
123
não pode ser convertida em nodeset. Portanto, a implantação do proxy de API falha.
Resolução
As expressões <XPath>
usadas na política de variáveis de extração podem ser convertidas em nodeset se o tipo <Variable>
estiver definido como nodeset. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>visitor</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="age" type="nodeset">
<XPath>/visitor/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
InvalidPattern
Mensagem de erro
A implantação do proxy de API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]
Exemplo de mensagem de erro
Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
Captura de tela de exemplo
Causa
Se a definição do elemento <Pattern>
for inválida em qualquer um dos elementos como URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ou JSONPayload
na política de extração de variáveis, a implantação do proxy de API falhará.
Diagnóstico
Identifique a política com falha de variáveis de extração na mensagem de erro. Por exemplo, no erro a seguir, o nome da política é
Extract-Variables-2
:Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
No XML da política de extração de variáveis com falha, verifique se algum destes elementos está presente e inclua um elemento
<Pattern>
:URIPath
,QueryParam
,Header
,FormParam
,XMLPayload
ouJSONPayload
.Por exemplo, veja um exemplo de política de extração de variáveis com um elemento
<Pattern>
dentro do elemento<QueryParam>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractVariables-2"> <DisplayName>ExtractVariables-2</DisplayName> <Source>request</Source> <QueryParam name="code"> <Pattern ignoreCase="true">{*}</Pattern> </QueryParam> <VariablePrefix>queryinfo</VariablePrefix> </ExtractVariables>
Examine a definição de cada um dos elementos
<Pattern>
. Se houver algum elemento<Pattern>
com uma definição inválida, essa é a causa do erro.No exemplo de política de extração de variáveis mostrado acima, observe que a definição
<Pattern>
no elemento<QueryParam>
é inválida. Portanto, a implantação do proxy da API falha. Consulte também Sobre a correspondência e a criação de variáveis.<Pattern ignoreCase="true">{*}</Pattern>
Resolução
A definição do elemento <Pattern>
nos elementos URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ou JSONPayload
na política de extração de variáveis é válida. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-2">
<DisplayName>Extract a value from a query parameter</DisplayName>
<Source>request</Source>
<QueryParam name="code">
<Pattern ignoreCase="true">{code}</Pattern>
</QueryParam>
<VariablePrefix>queryinfo</VariablePrefix>
</ExtractVariables>
Consulte também Sobre a correspondência e a criação de variáveis
XPathCompilationFailed
Mensagem de erro
A implantação do proxy da API por meio da IU da Apigee ou da API falha com esta mensagem de erro:
Error Deploying Revision [revision_number] ExtractVariables [policy_name]: Failed to compile xpath [xpath] Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
Exemplo de mensagem de erro
Error Deploying Revision 1 to test
ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
Captura de tela de exemplo
Causa
Se o prefixo ou o valor usado no elemento <XPath>
não fizer parte de nenhum dos namespaces declarados na política de extração de variáveis, a implantação do proxy de API falhará.
Veja mais informações sobre namespaces, XPath e prefixo em Namespaces XML e como eles afetam o XPath e o GQL.
Diagnóstico
Identifique a política de variáveis de extração em que o erro ocorreu e o caminho que não pôde ser compilado. É possível encontrar os dois itens na mensagem de erro. Por exemplo, no erro a seguir , o nome da política é
EV-XML-Age
e o xpath é/apigee:Directions/apigee:route/apigee:leg/apigee:name
.ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
No XML da política de extração com falha, verifique se o XPath definido no elemento
<XPath>
corresponde ao XPath identificado na mensagem de erro (etapa 1 acima). Por exemplo, a política a seguir especifica ocomo /apigee:Directions/apigee:route/apigee:leg/apigee:name
, que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload> </ExtractVariables>
Analise os elementos
<Namespaces>
e<XPath>
na política de extração de variáveis. Se o<XPath>
específico indicado na mensagem de erro usar um prefixo ou valor que não faz parte dos namespaces declarados na política de extração de variáveis, essa é a causa do erro.Observe que a
<XPath>
específica usa o prefixoapigee
na política de exemplo de variáveis de extração.<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
No entanto, o prefixo
apigee
não está definido em nenhum dos elementos<Namespace>
; Portanto, a compilação de<XPath>
falha devido a uma falha de implantação.
Resolução
Verifique se todos os namespaces usados nos elementos <XPath>
estão declarados na política de variáveis de extração. Exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>