Está a ver a documentação do Apigee e do Apigee Hybrid.
Ver documentação do
Apigee Edge.
InvalidRegularExpression
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 to environment RegularExpressionProtection policy_name: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.
Exemplo de mensagem de erro
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Captura de ecrã de erro de exemplo
Causa
Se a expressão regular no elemento <Pattern>
da política RegularExpressionProtection não for válida, a implementação do proxy de API falha.
Diagnóstico
Identifique o nome da política RegularExpressionProtection na mensagem de erro. Por exemplo, no erro seguinte, o nome da política RegularExpressionProtection é
Regular-Expression-Protection-1:
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Invalid Regular Expression com.apigee.steps.regexprotection.RegularExpressionProtectionBean$RegexPattern@f4ecb23, Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Examine todos os elementos
<Pattern>
no XML da política de proteção de expressões regulares com falhas. Verifique se algum dos elementos<Pattern>
tem uma expressão regular inválida. Se algum dos elementos<Pattern>
tiver uma expressão regular inválida, essa é a causa do erro.Por exemplo, a seguinte política especifica o valor de
Pattern>
defoo){2}
, que é considerado uma expressão regular inválida:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <URIPath> <Pattern>foo){2}</Pattern> </URIPath> <Source>request</Source> </RegularExpressionProtection>
No exemplo acima, a expressão regular especificada no elemento
<Pattern>
tem um parênteses de abertura em falta. Por conseguinte, é considerada uma expressão regular inválida. Assim, a implementação do proxy de API falha.
Resolução
Certifique-se de que cada elemento <Pattern>
na política RegularExpressionProtection contém uma expressão regular válida. Pode pesquisar diferentes ferramentas de regex online ou offline para depurar as suas expressões regulares.
Para corrigir a política de proteção de expressões regulares de exemplo apresentada acima, adicione os parênteses em falta:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <URIPath> <Pattern>(foo){2}</Pattern> </URIPath> <Source>request</Source> </RegularExpressionProtection>
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 to environment RegularExpressionProtection policy_name: Failed to compile xpath xpath_expression. Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.
Exemplo de mensagem de erro
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile xpath /notapigee:foo/notapigee:bar. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Captura de ecrã de erro 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 RegularExpressionProtection, 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 o nome da política RegularExpressionProtection onde ocorreu o erro e a expressão XPath que foi usada. Pode encontrar ambos os itens na mensagem de erro.
Por exemplo, no erro seguinte , o nome da política é
Regular-Expression-Protection-1
e a expressão XPath é/notapigee:foo/notapigee:bar:
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile xpath /notapigee:foo/notapigee:bar. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
No XML da política de proteção de expressões regulares com falhas, verifique se o XPath definido no elemento
Expression
corresponde ao XPath identificado na mensagem de erro (passo n.º 1 acima).Por exemplo, a política seguinte especifica o XPath como
/notapigee:foo/notapigee:bar
, que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/notapigee:foo/notapigee:bar</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
- Examine os elementos
<Namespaces>
e<Expression>
na política RegularExpressionProtection. Se o<Expression>
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 RegularExpressionProtection, essa é a causa do erro.Tenha em atenção que o
<XPath>
específico usa o prefixonotapigee
no exemplo da política de proteção de expressões regulares:<Expression>/notapigee:foo/notapigee:bar</Expression>
No entanto, o prefixo
notapigee
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 em elementos <Expression>
nos elementos <XPath>
são declarados na política de proteção de expressões regulares. Para corrigir o exemplo acima, pode substituir o prefixo notapigee
por apigee
, que é declarado nos espaços de nomes:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:foo/apigee:bar</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
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 to environment RegularExpressionProtection policy_name: Result of xpath xpath_expression cannot be converted to nodeset. Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.
Exemplo de mensagem de erro
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Result of xpath count(//apigee:foo) cannot be converted to nodeset. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Captura de ecrã de erro de exemplo
Causa
Se a política de expressões regulares tiver uma expressão <XPath>
em que o elemento <Type>
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 RegularExpressionProtection onde ocorreu o erro e a expressão XPath que não pode ser convertida em nodeset. Pode encontrar ambos os itens na mensagem de erro.
Por exemplo, no erro seguinte , o nome da política é
Regular-Expression-Protection-1
e a expressão XPath écount(//apigee:foo):
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Result of xpath count(//apigee:foo) cannot be converted to nodeset. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
No XML da política de proteção de expressões regulares com falhas, verifique se o XPath definido no elemento
<Expression>
do elemento<XPath>
corresponde ao XPath identificado na mensagem de erro (passo n.º 1 acima).Por exemplo, a seguinte política especifica o valor
count(//apigee:foo)
, que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>count(//apigee:foo)</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Examine o valor definido no elemento
<Type>
abaixo do elemento<XPath>
. Se o elemento<Type>
fornodeset
, essa é a causa do erro.Neste exemplo, a expressão XPath é count(), que não devolve um ou mais nós. Assim, a implementação do proxy de API falha.
Resolução
Se o elemento <Type>
estiver definido como nodeset, certifique-se de que o resultado do elemento <Expression>
definido em <XPath>
é um ou mais nós. Em alternativa, altere o elemento <Type>
para um valor mais adequado com base no seu exemplo de utilização.
Para corrigir o exemplo acima, pode alterar o elemento <Expression>
para um valor diferente que possa devolver nós:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:foo/apigee:bar</Expression> <Type>nodeset</Type> <Pattern>pattern</Pattern> <Pattern>pattern2</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
JSONPathCompilationFailed
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 to environment RegularExpressionProtection policy_name: Failed to compile jsonpath jsonpath_expression Context Revision:revision_number;APIProxy:RegexThreat;Organization:organization;Environment:environment.
Exemplo de mensagem de erro
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile jsonpath $.store.book[*.author. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
Captura de ecrã de erro de exemplo
Causa
Se o elemento <Expression>
no elemento <JSONPath>
de uma política de proteção de expressões regulares estiver definido como uma expressão JSONPath inválida, a implementação do proxy de API falha.
Diagnóstico
Identifique o nome da política RegularExpressionProtection onde ocorreu o erro e a expressão JSONPath inválida foi usada. Pode encontrar ambos os itens na mensagem de erro.
Por exemplo, no seguinte erro , o nome da política é
Regular-Expression-Protection-1
e a expressão JSONPath é$.store.book[*.author:
Error Deploying Revision 1 to test RegularExpressionProtection Regular-Expression-Protection-1: Failed to compile jsonpath $.store.book[*.author. Context Revision:1;APIProxy:RegexThreat;Organization:myorg;Environment:test.
No XML da política de proteção de expressões regulares com falha, verifique se o JSONPath definido no elemento
Expression
corresponde ao JSONPath identificado na mensagem de erro (passo n.º 1 acima).Por exemplo, a política seguinte especifica o elemento
Expression
no elemento<JSONPath>
como$.store.book[*.author
, o que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression>$.store.book[*.author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
Examine o elemento
<Expression>
no elemento<JSONPath>
na política. Se não corresponder à sintaxe JSONPath, esta é a causa do erro. No exemplo acima, o parênteses retos de fecho está em falta, o que torna a expressão inválida.Uma vez que a expressão do caminho JSON é inválida, a implementação do proxy de API falha.
Resolução
Certifique-se de que o valor do elemento <Expression>
no elemento <JSONPath>
na política de proteção de expressões regulares é uma expressão JSONPath válida.
Para corrigir o exemplo apresentado acima, pode adicionar o parênteses retos de fecho em falta ao valor do elemento <Expression>
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
NothingToEnforce
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 RegularExpressionProtection policy_name: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Exemplo de mensagem de erro
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Captura de ecrã de erro de exemplo
Causa
Se a política RegularExpressionProtection não tiver nenhum dos elementos <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
ou <JSONPayload>
, a implementação do proxy de API falha.
Conforme indicado na mensagem de erro, a política RegularExpressionProtection tem de ter, pelo menos, um destes elementos incluídos na política: <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
ou <JSONPayload>
.
Diagnóstico
Identifique o nome da política RegularExpressionProtection onde ocorreu o erro. Pode encontrá-lo na mensagem de erro. Por exemplo, no seguinte erro , o nome da política é
Regular-Expression-Protection-1:
RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Examine a política de proteção de expressões regulares com falhas (identificada no passo n.º 1 acima). 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 de proteção de expressões regulares não tem nenhum dos elementos mencionados acima:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> </RegularExpressionProtection>
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 RegularExpressionProtection tem, pelo menos, um destes elementos obrigatórios: <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
ou <JSONPayload>
. Por exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
NoPatternsToEnforce
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 RegularExpressionProtection policy_name: No patterns to enforce in payload_name.
Exemplo de mensagem de erro
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
Captura de ecrã de erro de exemplo
Causa
Se algum dos elementos de nível superior (<URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
ou <JSONPayload>
) não tiver o elemento <Pattern>
definido na política RegularExpressionProtection, a implementação do proxy de API falha.
Diagnóstico
Identifique o nome da política RegularExpressionProtection onde ocorreu o erro e o elemento subordinado que não tem o elemento
<Pattern>
. Pode encontrar ambos os itens na mensagem de erro.Por exemplo, no seguinte erro, o nome da política é
Regular-Expression-Protection-1
e o elemento filho éXPath:
RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
- Examine a política de proteção de expressões regulares com falhas e verifique se o elemento subordinado identificado no passo n.º 1 não tem o elemento
<Pattern>
. Se o elemento<Pattern>
não existir, essa é a causa do erro.Por exemplo, a seguinte política não tem o elemento
<Pattern>
dentro de<XPath>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> </XPath> </XMLPayload> </RegularExpressionProtection>
Uma vez que o elemento
<XPath>
não tem o elemento<Pattern>
, a implementação do proxy de API falha.
Resolução
Certifique-se de que qualquer um dos elementos <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
ou <JSONPayload>
tem, pelo menos, um <Pattern>
especificado. Consulte a Política de Proteção de Expressões Regulares para ver informações sobre como especificar o elemento corretamente.
Para corrigir o exemplo acima, podemos simplesmente adicionar o elemento <Pattern>
ao elemento <XPath>
abaixo de <XMLPayload>
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
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 RegularExpressionProtection policy_name: Non-empty prefix prefix_name cannot be mapped to empty uri.
Exemplo de mensagem de erro
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Captura de ecrã de erro de exemplo
Causa
Este erro ocorre se a política RegularExpressionProtection tiver um prefixo definido no elemento <Namespace>
no elemento <XMLPayload>
, mas não estiver definido nenhum URI.
Diagnóstico
Identifique a política RegularExpressionProtection onde ocorreu o erro e o nome do prefixo que não está mapeado para o URI. Pode encontrar ambos os itens na mensagem de erro.
Por exemplo, no seguinte erro, o nome da política é Regular Expression Protection-1 e o prefixo é apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
No XML da política de proteção de expressões regulares com falha, verifique se o nome do conjunto de prefixos 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 denominado apigee no elemento
<Namespace>
, que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee"/> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
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 de proteção de expressões regulares apresentado acima, repare que não existe nenhum URI correspondente ao elemento
<Namespace>
com o prefixo apigee. Por conseguinte, recebe o seguinte erro: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"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
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 RegularExpressionProtection policy_name: Duplicate prefix prefix_name.
Exemplo de mensagem de erro
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Captura de ecrã de erro de exemplo
Causa
Este erro ocorre se a política RegularExpressionProtection 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 RegularExpressionProtection 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 é Regular Expression Protection-1 e o prefixo é apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
No XML da política de proteção de expressões regulares com falha, verifique se o nome do conjunto de prefixos 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 denominado apigee no elemento
<Namespace>
, que corresponde ao que está na mensagem de erro:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
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.Na política de proteção de expressões regulares de exemplo apresentada acima, repare que o elemento
<Namespace>
com o prefixo apigee foi definido duas vezes. Por conseguinte, recebe o erro:Duplicate prefix apigee.
Resolução
Certifique-se de que existe apenas uma definição para cada prefixo nos elementos <Namespace>
na política RegularExpressionProtection. Por exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
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 RegularExpressionProtection policy_name: Empty XPath expression.
Exemplo de mensagem de erro
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Captura de ecrã de erro de exemplo
Causa
Se a política RegularExpressionProtection não tiver nenhum elemento <Expression>
definido no elemento <XPath>
, a implementação do proxy de API falha.
Diagnóstico
Identifique a política de proteção de expressões regulares com falhas a partir da mensagem de erro. Por exemplo, no seguinte erro, o nome da política é Regular-Expression-Protection-1:
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
No XML da política de proteção de expressões regulares com falhas, determine se existe um elemento
<XMLPayload>
com um elemento secundário<XPath>
que não tenha um elemento<Expression>
definido ou se o elemento<Expression>
não está definido para nenhum valor. Se for o caso, essa é a causa do erro.Por exemplo, segue-se uma política de proteção de expressões regulares que tem um elemento
<XMLPayload>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression></Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
Uma vez que existe um elemento
<Expression>
vazio no elemento<XPath>
, a implementação do proxy de API falha.
Resolução
Certifique-se de que a política RegularExpressionProtection tem um elemento <Expression>
não vazio e válido definido no elemento <XPath>
. Por exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <XMLPayload> <Namespaces> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <XPath> <Expression>/apigee:Greeting/apigee:User</Expression> <Type>string</Type> <Pattern>REGEX PATTERN</Pattern> </XPath> </XMLPayload> </RegularExpressionProtection>
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 RegularExpressionProtection policy_name: Empty JSONPath expression.
Exemplo de mensagem de erro
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Captura de ecrã de erro de exemplo
Causa
Se a política RegularExpressionProtection não tiver nenhum elemento <Expression>
definido no elemento <JSONPath>
, a implementação do proxy de API falha.
Diagnóstico
Identifique a política de proteção de expressões regulares com falhas a partir da mensagem de erro. Por exemplo, no seguinte erro, o nome da política é Regular-Expression-Protection-1:
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
No XML da política de proteção de expressões regulares com falhas, determine se existe um elemento
<JSONPayload>
com um elemento secundário<JSONPath>
que não tenha um elemento<Expression>
definido ou se o elemento<Expression>
não está definido para nenhum valor. Se for o caso, essa é a causa do erro.Por exemplo, segue-se uma política de proteção de expressões regulares que tem um elemento
<JSONPayload>
:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression></Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>
Uma vez que existe um elemento
<Expression>
vazio no elemento<JSONPath>
, a implementação do proxy de API falha.
Resolução
Certifique-se de que a política RegularExpressionProtection tem um elemento <Expression>
não vazio e válido definido no elemento <JSONPath>
. Por exemplo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <RegularExpressionProtection async="false" continueOnError="false" enabled="true" name="Regular-Expression-Protection-1"> <DisplayName>Regular Expression Protection-1</DisplayName> <Properties/> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> <Source>request</Source> <JSONPayload> <JSONPath> <Expression>$.store.book[*].author</Expression> <Pattern>REGEX PATTERN</Pattern> <Pattern>REGEX PATTERN</Pattern> </JSONPath> </JSONPayload> </RegularExpressionProtection>