Przeglądasz dokumentację Apigee Edge.
Przejdź do
Dokumentacja Apigee X. informacje.
InvalidRegularExpression
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
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.
Przykładowy komunikat o błędzie
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.
Przykładowy zrzut ekranu z błędem
Przyczyna
Jeśli wyrażenie regularne w elemencie <Pattern>
zasady RegularExpressionProtection jest nieprawidłowe, wdrożenie serwera proxy interfejsu API się nie uda.
Diagnostyka
Znajdź nazwę zasady RegularExpressionProtection z komunikatu o błędzie. Na przykład w tym błędzie nazwa zasady RegularExpressionProtection to
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.
Sprawdź wszystkie elementy
<Pattern>
w nieprawidłowym kodzie XML zasady ochrony wyrażeń regularnych. Sprawdź, czy w którymś z elementów<Pattern>
nie ma nieprawidłowego wyrażenia regularnego. Jeśli którykolwiek z elementów<Pattern>
zawiera nieprawidłowe wyrażenie regularne, to to jest przyczyną błędu.Na przykład ta zasada określa wartość
Pattern>
argumentufoo){2}
, co jest uważane za nieprawidłowe wyrażenie regularne:<?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>
W powyższym przykładzie w wyrażeniu regularnym określonym w metodzie
<Pattern>
brakuje nawiasów otwierających. W związku z tym jest ono uznawane za nieprawidłowe wyrażenie regularne. W związku z tym wdrożenie serwera proxy interfejsu API się nie uda.
Rozdzielczość
Upewnij się, że każdy element <Pattern>
w zasadzie RegularExpressionProtection zawiera prawidłowe wyrażenie regularne. Możesz wyszukiwać różne narzędzia do debugowania wyrażeń regularnych dostępne online i offline.
Aby poprawić przykładową zasadę ochrony przed wyrażeniami regularnymi przedstawioną powyżej, dodaj brakujące nawiasy:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
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.
Przykładowy komunikat o błędzie
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.
Przykładowy zrzut ekranu z błędem
Przyczyna
Jeśli prefiks lub wartość używana w elemencie <XPath>
nie należy do żadnej z zadeklarowanych przestrzeni nazw w zasadzie RegularExpressionProtection, wdrożenie serwera proxy interfejsu API się nie uda.
Więcej informacji o przestrzeniach nazw, ścieżce XPath i prefiksach znajdziesz w artykule Przestrzenie nazw XML i ich wpływ na XPath i CSS.
Diagnostyka
Określ nazwę zasady RegularExpressionProtection, w której wystąpił błąd, oraz użyte wyrażenie XPath. Oba te elementy znajdziesz w komunikacie o błędzie.
Na przykład w tym błędzie nazwa zasady to
Regular-Expression-Protection-1
, a wyrażenie XPath to/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.
W pliku XML z błędami ochrony wyrażenia regularnego sprawdź, czy ścieżka XPath ustawiona w elemencie
Expression
jest zgodna z ścieżką XPath podaną w komunikacie o błędzie (krok 1 powyżej).Na przykład ta zasada określa ścieżkę XPath jako
/notapigee:foo/notapigee:bar
, która jest zgodna z treścią komunikatu o błędzie:<?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>
- Sprawdź elementy
<Namespaces>
i<Expression>
w zasadzie RegularExpressionProtection. Jeśli właściwość<Expression>
wskazana w komunikacie o błędzie używa prefiksu lub wartości, która nie jest częścią przestrzeni nazw zadeklarowanych w zasadzie RegularExpressionProtection, jest to przyczyna błędu.Zwróć uwagę, że konkretne pole
<XPath>
używa prefiksunotapigee
w przykładowej zasadzie RegularExpressionProtection:<Expression>/notapigee:foo/notapigee:bar</Expression>
Jednak prefiks
notapigee
nie jest zdefiniowany w żadnym z elementów<Namespace>
; w związku z tym kompilacja obiektu<XPath>
nie uda się i nie uda się wdrożyć.
Rozdzielczość
Sprawdź, czy wszystkie przestrzenie nazw używane w elementach <Expression>
w elementach <XPath>
są zadeklarowane w zasadzie RegularExpressionProtection. Aby poprawić powyższy przykład, możesz zastąpić prefiks notapigee
prefiksem apigee
, który jest zadeklarowany w przestrzeniach nazw:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
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.
Przykładowy komunikat o błędzie
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.
Przykładowy zrzut ekranu z błędem
Przyczyna
Jeśli zasada wyrażeń regularnych zawiera wyrażenie <XPath>
, w którym element <Type>
jest zdefiniowany jako nodeset, ale nie można go przekonwertować na zbiór węzłów, wdrożenie serwera proxy interfejsu API się nie uda.
Diagnostyka
Określ zasadę RegularExpressionProtection, w której wystąpił błąd, oraz wyrażenie XPath, którego nie można przekonwertować na zbiór węzłów. Oba te elementy znajdziesz w komunikacie o błędzie.
Na przykład w tym błędzie nazwa zasady to
Regular-Expression-Protection-1
, a wyrażenie XPath tocount(//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.
W pliku XML z błędami ochrony wyrażenia regularnego sprawdź, czy ścieżka XPath ustawiona w elemencie
<Expression>
elementu<XPath>
jest zgodna ze ścieżką XPath podaną w komunikacie o błędzie (krok 1 powyżej).Na przykład ta zasada określa wartość
count(//apigee:foo)
, która jest zgodna z treścią komunikatu o błędzie:<?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>
Sprawdź wartość ustawioną w elemencie
<Type>
pod elementem<XPath>
. Jeśli element<Type>
ma wartośćnodeset
, to jest przyczyną błędu.W tym przykładzie wyrażenie XPath to count(), który nie zwraca co najmniej jednego węzła. Z tego powodu wdrożenie serwera proxy interfejsu API się nie udaje.
Rozdzielczość
Jeśli element <Type>
jest ustawiony na zbiór węzłów, upewnij się, że wynikiem elementu <Expression>
ustawionego w <XPath>
jest co najmniej 1 węzeł. Możesz też zmienić element <Type>
na bardziej odpowiednią wartość w zależności od przypadku użycia.
Aby poprawić powyższy przykład, możesz zmienić element <Expression>
na inną wartość, która może zwracać węzły:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
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.
Przykładowy komunikat o błędzie
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.
Przykładowy zrzut ekranu z błędem
Przyczyna
Jeśli element <Expression>
w elemencie <JSONPath>
zasady ochrony wyrażeń regularnych jest ustawiony na nieprawidłowe wyrażenie JSONPath, wdrożenie serwera proxy interfejsu API się nie uda.
Diagnostyka
Określ nazwę zasady RegularExpressionProtection, w której wystąpił błąd i zostało użyte nieprawidłowe wyrażenie JSONPath. Oba te elementy znajdziesz w komunikacie o błędzie.
Na przykład w tym błędzie nazwa zasady to
Regular-Expression-Protection-1
, a wyrażenie JSONPath to$.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.
W pliku XML z błędami ochrony wyrażenia regularnego sprawdź, czy ścieżka JSONPath ustawiona w elemencie
Expression
jest zgodna z ścieżką JSONPath podaną w komunikacie o błędzie (krok 1 powyżej).Na przykład ta zasada określa element
Expression
w elemencie<JSONPath>
jako$.store.book[*.author
, co jest zgodne z treścią komunikatu o błędzie:<?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>
Sprawdź element
<Expression>
pod elementem<JSONPath>
w zasadzie. Jeśli treść nie jest zgodna ze składnią JSONPath, to jest to przyczyna błędu. W powyższym przykładzie brakuje zamykającego nawiasu kwadratowego, co powoduje, że wyrażenie jest nieprawidłowe.Wyrażenie ścieżki JSON jest nieprawidłowe, dlatego nie udało się wdrożyć serwera proxy interfejsu API.
Rozdzielczość
Sprawdź, czy wartość elementu <Expression>
w elemencie <JSONPath>
w zasadzie ochrony wyrażeń regularnych jest prawidłowym wyrażeniem JSONPath.
Aby poprawić przykład powyżej, możesz dodać brakujący nawias kwadratowy do wartości elementu <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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision revision_number RegularExpressionProtection policy_name: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Przykładowy komunikat o błędzie
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Przykładowy zrzut ekranu z błędem
Przyczyna
Jeśli zasada RegularExpressionProtection nie zawiera żadnego elementu <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
ani <JSONPayload>
, wdrożenie serwera proxy interfejsu API się nie uda.
Jak wskazano w komunikacie o błędzie, zasada ochrony wyrażenia regularnego musi zawierać co najmniej 1 z tych elementów: <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
lub <JSONPayload>
.
Diagnostyka
Określ nazwę zasady RegularExpressionProtection, w której wystąpił błąd. Znajdziesz go w komunikacie o błędzie. Na przykład w tym błędzie nazwa zasady to
Regular-Expression-Protection-1:
RegularExpressionProtection Regular-Expression-Protection-1: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
Sprawdź niespełnioną zasadę ochrony za pomocą wyrażeń regularnych (podaną w kroku 1 powyżej). Jeśli zasada nie zawiera nawet jednego z tych elementów:
<URIPath>
,<QueryParam>
,<Header>
,<FormParam>
,<XMLPayload>
lub<JSONPayload>
, to jest przyczyną błędu.Na przykład te zasady ochrony przed wyrażeniami regularnymi nie zawierają żadnego z wymienionych wyżej elementów:
<?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>
Ponieważ w zasadzie wyodrębniania zmiennych nie ma żadnych obowiązkowych elementów, wdrożenie serwera proxy interfejsu API się nie uda.
Rozdzielczość
Upewnij się, że zasada RegularExpressionProtection zawiera co najmniej jeden z tych wymaganych elementów: <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
lub <JSONPayload>
. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision revision_number RegularExpressionProtection policy_name: No patterns to enforce in payload_name.
Przykładowy komunikat o błędzie
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
Przykładowy zrzut ekranu z błędem
Przyczyna
Jeśli którykolwiek z elementów najwyższego poziomu (<URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
lub <JSONPayload>
) nie ma zdefiniowanego elementu <Pattern>
w zasadach RegularExpressionProtection, wdrożenie serwera proxy interfejsu API się nie uda.
Diagnostyka
Wskaż nazwę zasady RegularExpressionProtection, w której wystąpił błąd, oraz elementu podrzędnego, który nie zawiera elementu
<Pattern>
. Oba te elementy znajdziesz w komunikacie o błędzie.Na przykład w tym błędzie nazwa zasady to
Regular-Expression-Protection-1
, a element podrzędny toXPath:
RegularExpressionProtection Regular-Expression-Protection-1: No patterns to enforce in XPath.
- Sprawdź, czy zasada ochrony przed wyrażeniami regularnymi narusza zasady, i upewnij się, że element podrzędny wskazany w kroku 1 nie zawiera elementu
<Pattern>
. Jeśli nie ma w nim elementu<Pattern>
, to właśnie jest przyczyną błędu.Na przykład ta zasada nie zawiera elementu
<Pattern>
w elemencie<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>
Element
<XPath>
nie zawiera elementu<Pattern>
, więc wdrożenie serwera proxy interfejsu API się nie uda.
Rozdzielczość
Upewnij się, że dowolny element <URIPath>
, <QueryParam>
, <Header>
, <FormParam>
, <XMLPayload>
lub <JSONPayload>
ma określony co najmniej 1 element <Pattern>
. Informacje o tym, jak prawidłowo określić element, znajdziesz w artykule Zasada RegularExpressionProtection.
Aby poprawić przykład powyżej, wystarczy dodać element <Pattern>
do elementu <XPath>
pod nagłówkiem <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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Non-empty prefix prefix_name cannot be mapped to empty uri.
Przykładowy komunikat o błędzie
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
Przykładowy zrzut ekranu z błędem
Przyczyna
Ten błąd występuje, jeśli zasada RegularExpressionProtection ma prefiks w elemencie <Namespace>
w elemencie <XMLPayload>
, ale nie określono identyfikatora URI.
Diagnostyka
Wskaż zasadę RegularExpressionProtection, w której wystąpił błąd, oraz nazwę prefiksu, który nie jest zmapowany na identyfikator URI. Oba te elementy znajdziesz w komunikacie o błędzie.
Na przykład w tym błędzie nazwa zasady to Ochrona wyrażenia regularnego 1, a prefiksem jest apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Non-empty prefix apigee cannot be mapped to empty uri.
W pliku XML z błędami ochrony wyrażenia regularnego sprawdź, czy nazwa prefiksu w elemencie
<Namespace>
w elemencie<XMLPayload>
odpowiada nazwie prefiksu określonej w komunikacie o błędzie (krok 1 powyżej).Na przykład ta zasada określa prefiks o nazwie apigee w elemencie
<Namespace>
, który jest zgodny z treścią komunikatu o błędzie:<?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>
Sprawdź, czy element
<Namespace>
z prefiksem określonym w kroku 2 ma prawidłowy identyfikator URI. Jeśli brakuje identyfikatora URI, to jest on przyczyną błędu.Zwróć uwagę, że w przykładowej zasadzie ochrony wyrażenia regularnego podanej powyżej nie ma identyfikatora URI odpowiadającego elementowi
<Namespace>
z prefiksem. w związku z tym pojawia się błąd:Non-empty prefix apigee cannot be mapped to empty uri.
Rozdzielczość
Upewnij się, że wszystkie elementy <Namespace>
zdefiniowane za pomocą prefiksu mają odpowiedni identyfikator URI w zasadzie Wyodrębnianie zmiennych. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Duplicate prefix prefix_name.
Przykładowy komunikat o błędzie
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
Przykładowy zrzut ekranu z błędem
Przyczyna
Ten błąd występuje, jeśli zasada RegularExpressionProtection ma ten sam prefiks zdefiniowany więcej niż raz w elemencie <Namespace>
w elemencie <XMLPayload>
.
Na przykład ten błąd występuje, ponieważ interfejs API prefiksu jest zdefiniowany dwukrotnie w sposób pokazany poniżej:
<Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace>
Diagnostyka
Wskaż zasadę RegularExpressionProtection, w której wystąpił błąd, i nazwę prefiksu. Oba te elementy znajdziesz w komunikacie o błędzie.
Na przykład w tym błędzie nazwa zasady to Ochrona wyrażenia regularnego 1, a prefiksem jest apigee:
RegularExpressionProtection Regular-Expression-Protection-1: Duplicate prefix apigee.
W pliku XML z błędami ochrony wyrażenia regularnego sprawdź, czy nazwa prefiksu w elemencie
<Namespace>
w elemencie<XMLPayload>
odpowiada nazwie prefiksu określonej w komunikacie o błędzie (krok 1 powyżej).Na przykład ta zasada określa prefiks o nazwie apigee w elemencie
<Namespace>
, który jest zgodny z treścią komunikatu o błędzie:<?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>
Sprawdź, czy element
<Namespace>
z określonym prefiksem określonym w kroku 2 został zdefiniowany więcej niż raz. Jeśli jest zdefiniowane więcej niż raz, to właśnie jest przyczyną błędu.Zwróć uwagę na to, że w przykładowej zasadzie ochrony wyrażenia regularnego powyżej zauważono, że element
<Namespace>
z apigee prefiksu został zdefiniowany dwukrotnie. w związku z tym pojawia się błąd:Duplicate prefix apigee.
Rozdzielczość
Upewnij się, że dla każdego prefiksu w elementach <Namespace>
w zasadzie RegularExpressionProtection występuje tylko jedna definicja. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty XPath expression.
Przykładowy komunikat o błędzie
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Przykładowy zrzut ekranu z błędem
Przyczyna
Jeśli zasada RegularExpressionProtection w elemencie <XPath>
nie ma ustawionego elementu <Expression>
, wdrożenie serwera proxy interfejsu API się nie uda.
Diagnostyka
Zidentyfikuj niedziałającą zasadę ochrony wyrażenia regularnego na podstawie komunikatu o błędzie. Na przykład w tym błędzie nazwa zasady to Regular-Expression-Protection-1:
RegularExpressionProtection Regular-Expression-Protection-1: Empty XPath expression.
Sprawdź, czy plik XML zasady ochrony wyrażeń regularnych zawiera nieprawidłowy element
<XMLPayload>
z elementem podrzędnym<XPath>
, który nie ma zdefiniowanego elementu<Expression>
, lub czy element<Expression>
nie ma żadnej wartości. Jeśli tak, to to jest przyczyną błędu.Oto przykładowa zasada ochrony wyrażeń regularnych, która zawiera element
<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>
Element
<XPath>
zawiera pusty element<Expression>
, dlatego nie udało się wdrożyć serwera proxy interfejsu API.
Rozdzielczość
Upewnij się, że zasada RegularExpressionProtection ma niepusty i prawidłowy element <Expression>
zdefiniowany w elemencie <XPath>
. Na przykład:
<?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
Komunikat o błędzie
Wdrożenie serwera proxy interfejsu API za pomocą interfejsu Edge UI lub Edge Management API nie powiedzie się i wyświetli się ten komunikat o błędzie:
Error Saving Revision revision_number RegularExpressionProtection policy_name: Empty JSONPath expression.
Przykładowy komunikat o błędzie
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Przykładowy zrzut ekranu z błędem
Przyczyna
Jeśli zasada RegularExpressionProtection w elemencie <JSONPath>
nie ma ustawionego elementu <Expression>
, wdrożenie serwera proxy interfejsu API się nie uda.
Diagnostyka
Zidentyfikuj niedziałającą zasadę ochrony wyrażenia regularnego na podstawie komunikatu o błędzie. Na przykład w tym błędzie nazwa zasady to Regular-Expression-Protection-1:
Error Saving Revision 1 RegularExpressionProtection Regular-Expression-Protection-1: Empty JSONPath expression.
Sprawdź, czy plik XML zasady ochrony wyrażeń regularnych zawiera nieprawidłowy element
<JSONPayload>
z elementem podrzędnym<JSONPath>
, który nie ma zdefiniowanego elementu<Expression>
, lub czy element<Expression>
nie ma żadnej wartości. Jeśli tak, to to jest przyczyną błędu.Oto przykładowa zasada ochrony wyrażeń regularnych, która zawiera element
<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>
Element
<JSONPath>
zawiera pusty element<Expression>
, dlatego nie udało się wdrożyć serwera proxy interfejsu API.
Rozdzielczość
Upewnij się, że zasada RegularExpressionProtection ma niepusty i prawidłowy element <Expression>
zdefiniowany w elemencie <JSONPath>
. Na przykład:
<?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>