Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do
Apigee Edge.
NothingToExtract
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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].
Mensagem de erro de exemplo
Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Captura de ecrã de exemplo
Causa
Se a política Extract Variables não tiver nenhum dos elementos URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ou JSONPayload
, a implementação do proxy de API falha, porque não existe nada para extrair.
Conforme indicado na mensagem de erro, a política Extract Variables tem de ter, pelo menos, um destes elementos incluídos na política: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ou JSONPayload
.
Diagnóstico
Examine a política Extract Variables (Extrair variáveis) mencionada na mensagem de erro. Se a política não tiver, pelo menos, um dos seguintes elementos: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
ou JSONPayload
, essa é a causa do erro. Por exemplo, a seguinte política Extract Variables 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>
Uma vez que nenhum dos elementos obrigatórios está presente na política Extract Variables, a implementação do proxy de API falha.
Resolução
Certifique-se de que a política Extract Variables tem, pelo menos, um destes elementos obrigatórios: URIPath
, QueryParam
, Header
, FormParam
, XMLPayload
e JSONPayload
. 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>
<Properties/>
<Source>request</Source>
<XMLPayload>
<Namespaces/>
<Variable name="age" type="integer">
<XPath>/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NONEmptyPrefixMappedToEmptyURI
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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.
Mensagem de erro de exemplo
Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Captura de ecrã de exemplo
Causa
Este erro ocorre se a política Extract Variables tiver um prefixo definido no elemento <Namespace>
no elemento <XMLPayload>
, mas não estiver definido nenhum URI.
Diagnóstico
Identifique a política Extract Variables onde ocorreu o erro e o nome do prefixo. Pode encontrar ambos os itens na mensagem de erro. Por exemplo, no seguinte erro , 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 da política Extract Variables 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 (passo n.º 1 acima). Por exemplo, a política seguinte especifica um prefixo denominadoapigee
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 no passo n.º 2 tem um URI válido. Se o URI estiver em falta, essa é a causa do erro.No exemplo da política Extract Variables apresentado acima, repare que não existe nenhum URI correspondente ao elemento
<Namespace>
com o prefixoapigee
. Por conseguinte, recebe o seguinte erro:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
Resolução
Certifique-se de que todos os elementos <Namespace>
definidos com um prefixo têm um URI correspondente na política Extrair variáveis. 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 implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Duplicate prefix [prefix_name].
Mensagem de erro de exemplo
Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Captura de ecrã de exemplo
Causa
Este erro ocorre se a política Extract Variables tiver o mesmo prefixo definido mais do que uma vez no elemento <Namespace>
no elemento <XMLPayload>
.
Por exemplo, este erro ocorre porque o prefixo apigee
está 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 Extract Variables onde ocorreu o erro e o nome do prefixo. Pode encontrar ambos os itens na mensagem de erro. Por exemplo, no seguinte erro, o nome da política é
EV-XML-Age
e o prefixo éapigee
:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
No XML da política Extract Variables 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 (passo n.º 1 acima). Por exemplo, a política seguinte especifica um prefixo denominadoapigee
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 no passo n.º 2, foi definido mais do que uma vez. Se estiver definido mais do que uma vez, essa é a causa do erro.No exemplo da política Extract Variables apresentado acima, repare que o elemento
<Namespace>
com o prefixoapigee
foi definido duas vezes. Por conseguinte, recebe o seguinte erro:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
Resolução
Certifique-se de que existe apenas uma definição para cada prefixo nos elementos <Namespace>
na política Extrair variáveis. 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>
NoXPathsToEvaluate
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no xpaths to evaluate in variable name.
Mensagem de erro de exemplo
Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
Captura de ecrã de exemplo
Causa
Se a política Extract Variables não tiver o elemento <XPath>
no elemento <XMLPayload>
, a implementação do proxy de API falha com o erro apresentado acima.
Diagnóstico
Identifique a política Extract Variables com falha na mensagem de erro. Por exemplo, no seguinte erro, o nome da política é
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
No XML da política Extract Variables com falha, verifique se existe um elemento
<XMLPayload>
sem o elemento secundário<XPath>
. Se for o caso, essa é a causa do erro.Por exemplo, segue-se uma política Extract Variables 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>
Uma vez que não existe nenhum elemento
<XPath>
, a implementação do proxy de API falha.
Resolução
Certifique-se de que a política Extract Variables tem um elemento <XPath>
definido no elemento <XMLPayload>
. Por 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 implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: XPath expression is empty in variable name.
Mensagem de erro de exemplo
Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.
Captura de ecrã de exemplo
Causa
Se a política Extract Variables tiver uma expressão <XPath>
vazia no elemento <XMLPayload>
, a implementação do proxy de API falha.
Diagnóstico
Identifique a política Extract Variables com falha na mensagem de erro. Por exemplo, no seguinte erro, o nome da política é
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
No XML da política Extract Variables com falha, determine se existe um elemento
<XMLPayload>
com um elemento secundário<XPath>
vazio. Se for o caso, essa é a causa do erro.Por exemplo, segue-se uma política Extract Variables 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>
Uma vez que existe um elemento
<XPath>
vazio no elemento<XMLPayload>
, a implementação do proxy de API falha.
Resolução
Certifique-se de que a política Extract Variables tem um elemento <XPath>
não vazio e válido definido no elemento <XMLPayload>
. Por 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 implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.
Mensagem de erro de exemplo
Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
Captura de ecrã de exemplo
Causa
Se a política Extract Variables não tiver o elemento <JSONPath>
no elemento <JSONPayload>
, a implementação do proxy de API falha com o erro apresentado acima.
Diagnóstico
Identifique a política Extract Variables com falha na mensagem de erro. Por exemplo, no seguinte erro, o nome da política é
Extract-Variables-1
:ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
No XML da política Extract Variables com falha, determine se existe um elemento
<JSONPayload>
sem o elemento secundário<JSONPath>
obrigatório. Se for o caso, essa é a causa do erro.Por exemplo, segue-se uma política Extract Variables 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>
Uma vez que não existe um elemento subordinado
<JSONPath>
definido no elemento<JSONPayload>
, a implementação do proxy de API falha.
Resolução
Certifique-se de que a política Extract Variables tem um elemento <JSONPath>
definido no elemento <JSONPayload>
. Por 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 implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: JSONPath expression is empty in variable name.
Mensagem de erro de exemplo
Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
Captura de ecrã de exemplo
Causa
Se a política Extract Variables tiver uma expressão <JSONPath>
vazia no elemento <JSONPayload>
, a implementação do proxy de API falha.
Diagnóstico
Identifique a política Extract Variables com falha na mensagem de erro. Por exemplo, no seguinte erro, o nome da política é
Extract-Variables-1
:ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
No XML da política Extract Variables com falha, verifique se existe um elemento
<JSONPayload>
com um elemento secundário<JSONPath>
vazio. Se for o caso, essa é a causa do erro.Por exemplo, segue-se uma política Extract Variables 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>
Uma vez que existe um elemento
<JSONPath>
vazio no elemento<JSONPayload>
, a implementação do proxy de API falha.
Resolução
Certifique-se de que a política Extract Variables tem um elemento <JSONPath>
não vazio e válido definido no elemento <JSONPayload>
. Por 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 implementação do proxy de API através da IU ou da API Apigee 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]
Mensagem de erro de exemplo
Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
Captura de ecrã de exemplo
Causa
Se a política Extract Variables não tiver o atributo name
em nenhum dos elementos da política, como QueryParam
, Header
, FormParam
ou Variable
, onde é necessário, a implementação do proxy de API falha.
Por exemplo, este erro ocorre se o atributo name
estiver em falta num elemento Variable
.
Diagnóstico
Identifique o nome da política Extract Variables onde ocorreu o erro e o elemento onde o atributo
name
está em falta. Pode encontrar estes itens na mensagem de erro. Por exemplo, no seguinte erro, 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 Extract Variables com falha, verifique se todos os elementos com o nome determinado no passo n.º 1 acima têm um atributo
name
. Se existir algum elemento em que o atributo name esteja em falta, essa é a causa do erro.Por exemplo, a seguinte política Extract Variables 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>
Repare que o atributo
name
está em falta no elementoVariable
, pelo que a implementação do proxy de API falha.
Resolução
Certifique-se de que a política Extract Variables contém o atributo name
necessário para os elementos QueryParam
, Header
, FormParam
ou Variable
. Por 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 implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Saving Revision [revision_number] Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]
Mensagem de erro de exemplo
Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
Captura de ecrã de exemplo
Causa
Se a política Extract Variables não tiver uma variável especificada no elemento <Pattern>
, a implementação do proxy de API falha. O elemento <Pattern>
requer o nome da variável na qual os dados extraídos vão ser armazenados.
Diagnóstico
Identifique o nome da política Extract Variables onde ocorreu o erro e o padrão para o qual a variável está em falta. Pode encontrar estes itens na mensagem de erro. Por exemplo, no seguinte erro, 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 Extract Variables com falha, verifique se o padrão definido no elemento
<Pattern>
corresponde ao padrão identificado na mensagem de erro (passo n.º 1 acima). Por exemplo, a seguinte política especifica um padrão/a/b
, que corresponde ao que está na mensagem de erro:Por exemplo, segue-se uma política de extração de variáveis 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 no passo n.º 2 não tem uma variável. As variáveis têm de estar entre chavetas. Se o padrão não tiver uma variável, então essa é a causa do erro.O elemento
<Pattern>
com o padrão /a/b não inclui uma variável. Por conseguinte, a implementação do proxy de API falha<Pattern ignoreCase="true">/a/b/</Pattern>
Resolução
Certifique-se de que todos os elementos <Pattern>
incluem uma variável (um nome entre chavetas). Por 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 implementação do proxy de API através da IU ou da API Apigee 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].
Mensagem de erro de exemplo
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 ecrã de exemplo
Causa
Se a política Extract Variables tiver uma expressão <XPath>
em que o tipo <Variable>
esteja definido como nodeset, mas a expressão não puder ser convertida em nodeset, a implementação do proxy de API falha.
Diagnóstico
Identifique a política Extract Variables onde ocorreu o erro e o XPath que não pode ser convertido em nodeset. Pode encontrar ambos os itens na mensagem de erro. Por exemplo, no seguinte erro , 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 Extract Variables com falha, verifique se o XPath definido no elemento
<XPath>
corresponde ao XPath identificado na mensagem de erro (passo n.º 1 acima). Por exemplo, a seguinte política especifica ocomo 123
, o 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 no passo n.º 2 acima. Se o tipo<Variable>
fornodeset
, essa é a causa do erro.Tenha em atenção que a expressão
<XPath>
é123
no exemplo da política Extract Variables.<XPath>123</XPath>
Não é possível converter a expressão
123
num conjunto de nós. Assim, a implementação do proxy de API falha.
Resolução
Certifique-se de que as expressões <XPath>
usadas na política Extract Variables podem ser convertidas em nodeset se o tipo <Variable>
for definido como nodeset. Por 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 implementação do proxy de API através da IU ou da API Apigee falha com esta mensagem de erro:
Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]
Mensagem de erro de exemplo
Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
Captura de ecrã 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 Extract Variables, a implementação do proxy de API falha.
Diagnóstico
Identifique a política Extract Variables com falhas na mensagem de erro. Por exemplo, no seguinte erro, o nome da política é
Extract-Variables-2
:Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
No XML da política Extract Variables com falha, verifique se algum destes elementos está presente e inclua um elemento
<Pattern>
:URIPath
,QueryParam
,Header
,FormParam
,XMLPayload
ouJSONPayload
.Por exemplo, segue-se uma política Extract Variables com um elemento
<Pattern>
dentro de um 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 existir algum elemento<Pattern>
com uma definição inválida, essa é a causa do erro.No exemplo da política Extract Variables apresentado acima, repare que a definição
<Pattern>
no elemento<QueryParam>
é inválida. Por conseguinte, a implementação do proxy de API falha. Veja também Acerca da correspondência e da criação de variáveis<Pattern ignoreCase="true">{*}</Pattern>
Resolução
Certifique-se de que 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. Por 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>
Veja também Acerca da correspondência e da criação de variáveis
XPathCompilationFailed
Mensagem de erro
A implementação do proxy de API através da IU ou da API Apigee 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].
Mensagem de erro de exemplo
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 ecrã de exemplo
Causa
Se o prefixo ou o valor usado no elemento <XPath>
não fizer parte de nenhum dos espaços de nomes declarados na política Extract Variables, a implementação do proxy de API falha.
Pode encontrar mais informações sobre espaços de nomes, XPath e prefixos em XML Namespaces and How They Affect XPath and XSLT.
Diagnóstico
Identifique a política Extract Variables onde ocorreu o erro e o XPath que não foi possível compilar. Pode encontrar ambos os itens na mensagem de erro. Por exemplo, no seguinte erro , 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 Extract Variables com falha, verifique se o XPath definido no elemento
<XPath>
corresponde ao XPath identificado na mensagem de erro (passo n.º 1 acima). Por exemplo, a seguinte política especifica ocomo /apigee:Directions/apigee:route/apigee:leg/apigee:name
, o 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>
Examine os elementos
<Namespaces>
e<XPath>
na política Extrair variáveis. Se o<XPath>
específico indicado na mensagem de erro usar um prefixo ou um valor que não faça parte dos espaços de nomes declarados na política Extract Variables, essa é a causa do erro.Tenha em atenção que o
<XPath>
específico usa o prefixoapigee
no exemplo da política Extrair variáveis.<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
No entanto, o prefixo
apigee
não está definido em nenhum dos elementos<Namespace>
. Por conseguinte, a compilação de<XPath>
falha, o que leva a uma falha na implementação.
Resolução
Certifique-se de que todos os espaços de nomes que estão a ser usados nos elementos <XPath>
são declarados na política Extract Variables. 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>