Stai visualizzando la documentazione di Apigee Edge.
Vai alla sezione
Documentazione di Apigee X. Informazioni
InvalidRegularExpression
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
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.
Messaggio di errore di esempio
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.
Screenshot di errore di esempio

Causa
Se l'espressione regolare nell'elemento <Pattern> del criterio RegularExpressionProtection non è valida, il deployment del proxy API non va a buon fine.
Diagnosi
Identifica il nome del criterio RegularExpressionProtection dal messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio 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.
Esamina tutti gli elementi
<Pattern>nel file XML del criterio di protezione dalle espressioni regolari non riuscito. Verifica se uno degli elementi<Pattern>contiene un'espressione regolare non valida. Se uno degli elementi<Pattern>contiene un'espressione regolare non valida, questa è la causa dell'errore.Ad esempio, il seguente criterio consente di specificare il valore
Pattern>difoo){2}, che è considerato un'espressione regolare non valida:<?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>Nell'esempio precedente, l'espressione regolare specificata nel campo
<Pattern>non contiene parentesi di apertura. Pertanto, viene considerata come un'espressione regolare non valida. Di conseguenza, il deployment del proxy API non va a buon fine.
Risoluzione
Assicurati che ogni elemento <Pattern> del criterio RegularExpressionProtection contenga un'espressione regolare valida. Puoi cercare diversi strumenti regex online o offline per eseguire il debug delle espressioni regolari.
Per correggere il criterio di protezione delle espressioni regolari di esempio mostrato sopra, aggiungi le parentesi mancanti:
<?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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
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.
Messaggio di errore di esempio
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.
Screenshot di errore di esempio

Causa
Se il prefisso o il valore utilizzato nell'elemento <XPath> non fa parte di nessuno degli spazi dei nomi dichiarati nel criterio RegularExpressionProtection, il deployment del proxy API non riesce.
Puoi trovare ulteriori informazioni su spazi dei nomi, XPath e prefisso in XML Namespaces and How they Affect XPath e TCF.
Diagnosi
Identifica il nome del criterio RegularExpressionProtection in cui si è verificato l'errore e l'espressione XPath utilizzata. Puoi trovare entrambe le voci nel messaggio di errore.
Ad esempio, nell'errore seguente , il nome del criterio è
Regular-Expression-Protection-1e l'espressione 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.
Nel file XML del criterio di protezione dalle espressioni regolari che non è stato superato, verifica che l'XPath impostato nell'elemento
Expressioncorrisponda all'XPath identificato nel messaggio di errore (passaggio 1 sopra).Ad esempio, il seguente criterio specifica l'XPath come
/notapigee:foo/notapigee:bar, che corrisponde al contenuto del messaggio di errore:<?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>
- Esamina gli elementi
<Namespaces>e<Expression>nel criterio RegularExpressionProtection. Se lo specifico<Expression>indicato nel messaggio di errore utilizza un prefisso o un valore che non fa parte degli spazi dei nomi dichiarati nel criterio RegularExpressionProtection, è questo la causa dell'errore.Tieni presente che lo specifico
<XPath>utilizza il prefissonotapigeenell'esempio del criterio RegularExpressionProtection:<Expression>/notapigee:foo/notapigee:bar</Expression>
Tuttavia, il prefisso
notapigeenon è definito in nessuno degli elementi<Namespace>. pertanto la compilazione di<XPath>non va a buon fine e porta a un errore del deployment.
Risoluzione
Assicurati che tutti gli spazi dei nomi utilizzati negli elementi <Expression> sotto gli elementi <XPath> siano dichiarati nel criterio RegularExpressionProtection. Per correggere l'esempio precedente, puoi sostituire il prefisso notapigee con apigee, che viene dichiarato negli spazi dei nomi:
<?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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
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.
Messaggio di errore di esempio
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.
Screenshot di errore di esempio

Causa
Se il criterio per le espressioni regolari ha un'espressione <XPath> in cui l'elemento <Type> è definito come nodeset, ma l'espressione non può essere convertita in nodeset, il deployment del proxy API non riuscirà.
Diagnosi
Identifica il criterio RegularExpressionProtection in cui si è verificato l'errore e l'espressione XPath che non può essere convertita in nodeset. Puoi trovare entrambe le voci nel messaggio di errore.
Ad esempio, nell'errore seguente , il nome del criterio è
Regular-Expression-Protection-1e l'espressione 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.
Nel file XML del criterio di protezione dalle espressioni regolari con errori, verifica che l'XPath impostato nell'elemento
<Expression>dell'elemento<XPath>corrisponda all'XPath identificato nel messaggio di errore (passaggio 1 sopra).Ad esempio, il seguente criterio specifica
count(//apigee:foo), che corrisponde al contenuto del messaggio di errore:<?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>
Esamina il valore impostato nell'elemento
<Type>sotto l'elemento<XPath>. Se l'elemento<Type>ènodeset, questa è la causa dell'errore.In questo esempio, l'espressione XPath è count() che non restituisce uno o più nodi. Pertanto, il deployment del proxy API non va a buon fine.
Risoluzione
Se l'elemento <Type> è impostato su nodeset, assicurati che il risultato dell'elemento <Expression> impostato in <XPath> sia uno o più nodi. In alternativa, modifica l'elemento <Type> impostando un valore più appropriato in base al tuo caso d'uso.
Per correggere l'esempio precedente, potresti modificare l'elemento <Expression> impostando un valore diverso che possa restituire nodi:
<?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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
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.
Messaggio di errore di esempio
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.
Screenshot di errore di esempio

Causa
Se l'elemento <Expression> in <JSONPath> di un criterio di protezione dalle espressioni regolari è impostato su un'espressione JSONPath non valida, il deployment del proxy API non va a buon fine.
Diagnosi
Identifica il nome del criterio RegularExpressionProtection in cui si è verificato l'errore ed è stata utilizzata l'espressione JSONPath non valida. Puoi trovare entrambe le voci nel messaggio di errore.
Ad esempio, nell'errore seguente , il nome del criterio è
Regular-Expression-Protection-1e l'espressione 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.
Nel file XML del criterio di protezione dalle espressioni regolari con errore, verifica che il set JSONPath impostato nell'elemento
Expressioncorrisponda al JSONPath identificato nel messaggio di errore (passaggio 1 sopra).Ad esempio, il seguente criterio specifica l'elemento
Expressionnell'elemento<JSONPath>come$.store.book[*.author, che corrisponde al contenuto del messaggio di errore:<?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>
Esamina l'elemento
<Expression>all'interno dell'elemento<JSONPath>del criterio. Se non corrisponde alla sintassi di JSONPath, questa è la causa dell'errore. Nell'esempio precedente, manca la parentesi quadra di chiusura e, di conseguenza, l'espressione non è valida.Poiché l'espressione di percorso JSON non è valida, il deployment del proxy API ha esito negativo.
Risoluzione
Assicurati che il valore dell'elemento <Expression> all'interno dell'elemento <JSONPath> nel criterio di protezione dalle espressioni regolari sia un'espressione JSONPath valida.
Per correggere l'esempio mostrato sopra, puoi aggiungere la parentesi quadra di chiusura mancante al valore dell'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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
Error Saving Revision revision_number RegularExpressionProtection policy_name: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Messaggio di errore di esempio
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Screenshot di errore di esempio

Causa
Se il criterio RegularExpressionProtection non contiene gli elementi <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> o <JSONPayload>, il deployment del proxy API non riesce.
Come indicato nel messaggio di errore, il criterio RegularExpressionProtection deve includere almeno uno dei seguenti elementi: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> o <JSONPayload>.
Diagnosi
Identifica il nome del criterio RegularExpressionProtection in cui si è verificato l'errore. Puoi trovarlo nel messaggio di errore. Ad esempio, nell'errore seguente , il nome del criterio è
Regular-Expression-Protection-1:RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Esamina il criterio di protezione delle espressioni regolari che non è stato superato (identificato nel passaggio 1 precedente). Se il criterio non contiene nemmeno uno dei seguenti elementi:
<URIPath>,<QueryParam>,<Header>,<FormParam>,<XMLPayload>o<JSONPayload>, è questo la causa dell'errore.Ad esempio, il seguente criterio di protezione delle espressioni regolari non contiene nessuno degli elementi sopra menzionati:
<?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>Poiché nessuno degli elementi obbligatori è presente nel criterio Estrai variabili, il deployment del proxy API non va a buon fine.
Risoluzione
Assicurati che il criterio RegularExpressionProtection abbia almeno uno di questi elementi obbligatori: <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> o <JSONPayload>. Ad esempio:
<?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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
Error Saving Revision revision_number RegularExpressionProtection policy_name: No patterns to enforce in payload_name.
Messaggio di errore di esempio
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
Screenshot di errore di esempio

Causa
Se uno degli elementi di primo livello (<URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> o <JSONPayload>) non ha un elemento <Pattern> definito nel criterio RegularExpressionProtection, il deployment del proxy API non va a buon fine.
Diagnosi
Identifica il nome del criterio RegularExpressionProtection in cui si è verificato l'errore e l'elemento secondario che non ha l'elemento
<Pattern>. Puoi trovare entrambe le voci nel messaggio di errore.Ad esempio, nell'errore seguente, il nome del criterio è
Regular-Expression-Protection-1e l'elemento secondario èXPath:RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
- Esamina il criterio di protezione dalle espressioni regolari non conforme e verifica se l'elemento secondario identificato nel passaggio 1 non dispone dell'elemento
<Pattern>. Se l'elemento<Pattern>non esiste al suo interno, questo è la causa dell'errore.Ad esempio, il seguente criterio non ha l'elemento
<Pattern>all'interno di<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>
Poiché l'elemento
<XPath>non ha l'elemento<Pattern>, il deployment del proxy API non va a buon fine.
Risoluzione
Assicurati che per uno qualsiasi degli elementi <URIPath>, <QueryParam>, <Header>, <FormParam>, <XMLPayload> o <JSONPayload> sia specificato almeno un <Pattern>. Consulta il criterio RegularExpressionProtection per informazioni su come specificare correttamente l'elemento.
Per correggere l'esempio riportato sopra, potremmo semplicemente aggiungere l'elemento <Pattern> all'elemento <XPath> sotto <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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Non-empty prefix prefix_name cannot be mapped to empty uri.
Messaggio di errore di esempio
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Screenshot di errore di esempio

Causa
Questo errore si verifica se il criterio RegularExpressionProtection ha un prefisso definito nell'elemento <Namespace> sotto l'elemento <XMLPayload>, ma non è definito alcun URI.
Diagnosi
Identifica il criterio RegularExpressionProtection in cui si è verificato l'errore e il nome del prefisso che non è mappato all'URI. Puoi trovare entrambe le voci nel messaggio di errore.
Ad esempio, nel seguente errore, il nome del criterio è Regular Expression Protection-1 e il prefisso è apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Nel file XML del criterio di protezione dalle espressioni regolari con errore, verifica che il nome del prefisso impostato nell'elemento
<Namespace>sotto l'elemento<XMLPayload>corrisponda al nome del prefisso identificato nel messaggio di errore (passaggio 1 sopra).Ad esempio, il seguente criterio specifica un prefisso denominato apigee nell'elemento
<Namespace>, che corrisponde al contenuto del messaggio di errore:<?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>
Verifica che l'elemento
<Namespace>con il prefisso specifico identificato nel passaggio 2 abbia un URI valido. Se manca l'URI, questo è la causa dell'errore.Nel criterio di protezione delle espressioni regolari di esempio mostrato sopra, tieni presente che non esiste un URI corrispondente all'elemento
<Namespace>con il prefisso apigee; perciò viene visualizzato l'errore:Non-empty prefix apigee cannot be mapped to empty uri.
Risoluzione
Assicurati che tutti gli elementi <Namespace> definiti con un prefisso abbiano un URI corrispondente nel criterio Estrai variabili. Ad esempio:
<?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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Duplicate prefix prefix_name.
Messaggio di errore di esempio
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Screenshot di errore di esempio

Causa
Questo errore si verifica se il criterio RegularExpressionProtection ha lo stesso prefisso definito più di una volta nell'elemento <Namespace> sotto l'elemento <XMLPayload>.
Ad esempio, questo errore si verifica perché il prefisso apigee è definito due volte come mostrato di seguito:
<Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace>
Diagnosi
Identifica il criterio RegularExpressionProtection in cui si è verificato l'errore e il nome del prefisso. Puoi trovare entrambe le voci nel messaggio di errore.
Ad esempio, nel seguente errore, il nome del criterio è Regular Expression Protection-1 e il prefisso è apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Nel file XML del criterio di protezione dalle espressioni regolari con errore, verifica che il nome del prefisso impostato nell'elemento
<Namespace>sotto l'elemento<XMLPayload>corrisponda al nome del prefisso identificato nel messaggio di errore (passaggio 1 sopra).Ad esempio, il seguente criterio specifica un prefisso denominato apigee nell'elemento
<Namespace>, che corrisponde al contenuto del messaggio di errore:<?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>
Determina se l'elemento
<Namespace>con il prefisso specifico identificato nel passaggio 2 è stato definito più di una volta. Se viene definito più di una volta, ciò è la causa dell'errore.Nel criterio di protezione delle espressioni regolari di esempio mostrato sopra, si noti che l'elemento
<Namespace>con il prefisso apigee è stato definito due volte; perciò viene visualizzato l'errore:Duplicate prefix apigee.
Risoluzione
Assicurati che esista una sola definizione per ogni prefisso negli elementi <Namespace> del criterio RegularExpressionProtection. Ad esempio:
<?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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty XPath expression.
Messaggio di errore di esempio
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Screenshot di errore di esempio

Causa
Se per il criterio RegularExpressionProtection non è impostato alcun elemento <Expression> all'interno dell'elemento <XPath>, il deployment del proxy API non va a buon fine.
Diagnosi
Identifica il criterio di protezione dalle espressioni regolari non superato dal messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio è Regular-Expression-Protection-1:
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Nel file XML del criterio di protezione dalle espressioni regolari non riuscito, determina se è presente un elemento
<XMLPayload>con elemento secondario<XPath>in cui non è definito alcun elemento<Expression>o l'elemento<Expression>non è impostato su alcun valore. In tal caso, questa è la causa dell'errore.Ad esempio, di seguito è riportato un criterio di protezione dalle espressioni regolari con un 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>
Poiché è presente un elemento
<Expression>vuoto all'interno dell'elemento<XPath>, il deployment del proxy API ha esito negativo.
Risoluzione
Assicurati che il criterio RegularExpressionProtection abbia un elemento <Expression> non vuoto e valido definito sotto l'elemento <XPath>. Ad esempio:
<?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
Messaggio di errore
Il deployment del proxy API tramite la UI o l'API di gestione perimetrale non va a buon fine e questo messaggio di errore:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty JSONPath expression.
Messaggio di errore di esempio
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Screenshot di errore di esempio

Causa
Se per il criterio RegularExpressionProtection non è impostato alcun elemento <Expression> all'interno dell'elemento <JSONPath>, il deployment del proxy API non va a buon fine.
Diagnosi
Identifica il criterio di protezione dalle espressioni regolari non superato dal messaggio di errore. Ad esempio, nell'errore seguente, il nome del criterio è Regular-Expression-Protection-1:
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Nel file XML del criterio di protezione dalle espressioni regolari non riuscito, determina se è presente un elemento
<JSONPayload>con elemento secondario<JSONPath>in cui non è definito alcun elemento<Expression>o l'elemento<Expression>non è impostato su alcun valore. In tal caso, questa è la causa dell'errore.Ad esempio, ecco un criterio di protezione dalle espressioni regolari con un 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>
Poiché è presente un elemento
<Expression>vuoto all'interno dell'elemento<JSONPath>, il deployment del proxy API ha esito negativo.
Risoluzione
Assicurati che il criterio RegularExpressionProtection abbia un elemento <Expression> non vuoto e valido definito sotto l'elemento <JSONPath>. Ad esempio:
<?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>