אתם צופים במסמכי התיעוד של Apigee ושל Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge.
NothingToExtract
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory. Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
דוגמה להודעת שגיאה
Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.
צילום מסך לדוגמה

מטרה
אם למדיניות Extract Variables (חילוץ משתנים) אין אף אחד מהרכיבים URIPath, QueryParam, Header, FormParam, XMLPayload או JSONPayload, פריסת ה-API Proxy נכשלת כי אין מה לחלץ.
כפי שמצוין בהודעת השגיאה, מדיניות Extract Variables (חילוץ משתנים) חייבת לכלול לפחות אחד מהרכיבים הבאים: URIPath, QueryParam, Header, FormParam, XMLPayload או JSONPayload.
אבחון
בודקים את מדיניות Extract Variables (חילוץ משתנים) שמופיעה בהודעת השגיאה. אם במדיניות לא מופיע אפילו אחד מהרכיבים הבאים: URIPath, QueryParam, Header, FormParam, XMLPayload או JSONPayload, זו הסיבה לשגיאה. לדוגמה, למדיניות Extract Variables (חילוץ משתנים) הבאה אין אף אחד מהרכיבים שצוינו למעלה:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
</ExtractVariables>
מכיוון שאף אחד מהרכיבים הנדרשים לא מופיע במדיניות Extract Variables, הפריסה של proxy ל-API נכשלת.
רזולוציה
צריך לוודא שלמדיניות Extract Variables (חילוץ משתנים) יש לפחות אחד מרכיבי החובה האלה: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload. לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Properties/>
<Source>request</Source>
<XMLPayload>
<Namespaces/>
<Variable name="age" type="integer">
<XPath>/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NONEmptyPrefixMappedToEmptyURI
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.
דוגמה להודעת שגיאה
Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
צילום מסך לדוגמה

מטרה
השגיאה הזו מתרחשת אם למדיניות Extract Variables יש קידומת שמוגדרת ברכיב <Namespace> מתחת לרכיב <XMLPayload>, אבל לא מוגדר URI.
אבחון
מזהים את מדיניות Extract Variables (חילוץ משתנים) שבה התרחשה השגיאה ואת שם הקידומת. שני הפריטים האלה מופיעים בהודעת השגיאה. לדוגמה, בשגיאה הבאה , שם המדיניות הוא
EV-XML-Ageוהקידומת היאapigee:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.בקובץ ה-XML של מדיניות Extract Variables שנכשל, מוודאים שהשם של הקידומת שהוגדרה באלמנט
<Namespace>מתחת לאלמנט<XMLPayload>זהה לשם הקידומת שצוין בהודעת השגיאה (שלב 1 למעלה). לדוגמה, במדיניות הבאה מצוין קידומת בשםapigeeברכיב<Namespace>, שמתאימה למה שמופיע בהודעת השגיאה:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="apigee"></Namespace> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath> </Variable> </XMLPayload> </ExtractVariables>מוודאים שלרכיב
<Namespace>עם הקידומת הספציפית שזוהתה בשלב 2 יש URI תקין. אם כתובת ה-URI חסרה, זו הסיבה לשגיאה.בדוגמה של מדיניות Extract Variables שמוצגת למעלה, שימו לב שאין URI שמתאים לאלמנט
<Namespace>עם הקידומתapigee. לכן, מוצגת השגיאה:ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
רזולוציה
מוודאים שלכל רכיבי <Namespace> שהוגדרו עם קידומת יש URI תואם במדיניות Extract Variables. לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
</Variable>
</XMLPayload>
</ExtractVariables>
DuplicatePrefix
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: Duplicate prefix [prefix_name].
דוגמה להודעת שגיאה
Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.
צילום מסך לדוגמה

מטרה
השגיאה הזו מתרחשת אם למדיניות Extract Variables (חילוץ משתנים) יש אותו קידומת שהוגדרה יותר מפעם אחת ברכיב <Namespace> מתחת לרכיב <XMLPayload>.
לדוגמה, השגיאה הזו מתרחשת כי הקידומת apigee מוגדרת פעמיים, כמו שמוצג בהמשך:
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
אבחון
מזהים את מדיניות Extract Variables (חילוץ משתנים) שבה התרחשה השגיאה ואת שם הקידומת. שני הפריטים האלה מופיעים בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
EV-XML-Ageוהקידומת היאapigee:ExtractVariables EV-XML-Age: Duplicate prefix apigee.בקובץ ה-XML של מדיניות Extract Variables שנכשל, מוודאים שהשם של הקידומת שהוגדרה באלמנט
<Namespace>מתחת לאלמנט<XMLPayload>זהה לשם הקידומת שצוין בהודעת השגיאה (שלב 1 למעלה). לדוגמה, במדיניות הבאה מצוין קידומת בשםapigeeברכיב<Namespace>, שמתאימה למה שמופיע בהודעת השגיאה:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="gmail">http://mail.google.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> <Namespace prefix="apigee">http://www.apigee.com</Namespace> </Namespaces> <Variable name="legName" type="string <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload> </ExtractVariables>בודקים אם הרכיב
<Namespace>עם הקידומת הספציפית, שזוהה בשלב 2, הוגדר יותר מפעם אחת. אם הוא מוגדר יותר מפעם אחת, זו הסיבה לשגיאה.בדוגמה של מדיניות Extract Variables שמוצגת למעלה, שימו לב שהרכיב
<Namespace>עם הקידומתapigeeהוגדר פעמיים. לכן, מוצגת השגיאה:ExtractVariables EV-XML-Age: Duplicate prefix apigee.
רזולוציה
מוודאים שיש רק הגדרה אחת לכל קידומת באלמנטים <Namespace> במדיניות Extract Variables. לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
</Variable>
</XMLPayload>
</ExtractVariables>
NoXPathsToEvaluate
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no xpaths to evaluate in variable name.
דוגמה להודעת שגיאה
Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
צילום מסך לדוגמה

מטרה
אם לרכיב Extract Variables Policy אין את הרכיב <XPath> בתוך הרכיב <XMLPayload>, ה-Deployment (פריסה) של ה-proxy ל-API תיכשל עם השגיאה שמוצגת למעלה.
אבחון
מזהים את המדיניות Extract Variables שנכשלה מתוך הודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
Extract-Variables-1:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.ב-XML של מדיניות Extract Variables שנכשלה, בודקים אם יש אלמנט
<XMLPayload>ללא אלמנט הצאצא<XPath>. אם כן, זו הסיבה לשגיאה.לדוגמה, הנה מדיניות Extract Variables שיש לה רכיב
<XMLPayload>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="HostReachable" type="boolean"> </Variable> </XMLPayload> </ExtractVariables>הפריסה של ה-API Proxy נכשלת כי אין רכיב
<XPath>.
רזולוציה
מוודאים שהרכיב Extract Variables (חילוץ משתנים) מוגדר בתוך הרכיב <XMLPayload>.<XPath> לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="HostReachable" type="boolean">
<XPath>/isReachable</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
EmptyXPathExpression
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: XPath expression is empty in variable name.
דוגמה להודעת שגיאה
Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.
צילום מסך לדוגמה

מטרה
אם מדיניות Extract Variables (חילוץ משתנים) כוללת ביטוי <XPath> ריק ברכיב <XMLPayload>, ה-Deployment (פריסה) של proxy ל-API ייכשל.
אבחון
מזהים את המדיניות Extract Variables שנכשלה מתוך הודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
Extract-Variables-1:ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.בקובץ ה-XML של מדיניות Extract Variables שנכשל, בודקים אם יש אלמנט
<XMLPayload>עם אלמנט צאצא<XPath>ריק. אם כן, זו הסיבה לשגיאה.לדוגמה, הנה מדיניות Extract Variables שיש לה רכיב
<XMLPayload>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="address" type="string"> <XPath></XPath> </Variable> </XMLPayload> </ExtractVariables>פריסת ה-API Proxy נכשלת כי יש אלמנט
<XPath>ריק בתוך האלמנט<XMLPayload>.
רזולוציה
מוודאים שהרכיב <XPath> של מדיניות Extract Variables מוגדר כרכיב לא ריק ותקין מתחת לרכיב <XMLPayload>. לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="address" type="string">
<XPath>/address</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
NoJSONPathsToEvaluate
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.
דוגמה להודעת שגיאה
Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
צילום מסך לדוגמה

מטרה
אם לרכיב Extract Variables Policy אין את הרכיב <JSONPath> בתוך הרכיב <JSONPayload>, ה-Deployment (פריסה) של ה-proxy ל-API תיכשל עם השגיאה שמוצגת למעלה.
אבחון
מזהים את המדיניות Extract Variables שנכשלה מתוך הודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
Extract-Variables-1:ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.ב-XML של מדיניות Extract Variables שנכשלה, בודקים אם יש אלמנט
<JSONPayload>ללא אלמנט הצאצא<JSONPath>הנדרש. אם כן, זו הסיבה לשגיאה.לדוגמה, הנה מדיניות Extract Variables עם רכיב
<JSONPayload>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <JSONPayload> <Variable name="title"> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> </ExtractVariables>הפריסה של ה-API Proxy נכשלת כי לא מוגדר רכיב צאצא
<JSONPath>מתחת לרכיב<JSONPayload>.
רזולוציה
מוודאים שהרכיב <JSONPath> של מדיניות Extract Variables מוגדר מתחת לרכיב <JSONPayload>. לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<JSONPayload>
<Variable name="title">
<JSONPath>$.book.title</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>
EmptyJSONPathExpression
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] ExtractVariables [policy_name]: JSONPath expression is empty in variable name.
דוגמה להודעת שגיאה
Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
צילום מסך לדוגמה

מטרה
אם מדיניות Extract Variables (חילוץ משתנים) כוללת ביטוי <JSONPath> ריק ברכיב <JSONPayload>, ה-Deployment (פריסה) של proxy ל-API ייכשל.
אבחון
מזהים את המדיניות Extract Variables שנכשלה מתוך הודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
Extract-Variables-1:ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.ב-XML של מדיניות Extract Variables שנכשלה, בודקים אם יש אלמנט
<JSONPayload>עם אלמנט צאצא<JSONPath>ריק. אם כן, זו הסיבה לשגיאה.לדוגמה, הנה מדיניות Extract Variables שיש לה רכיב
<JSONPayload>:<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <JSONPayload> <Variable name="account_number" type="integer"> <JSONPath></JSONPath> </Variable> </JSONPayload> <Source clearPayload="false">request</Source> <VariablePrefix>apigee</VariablePrefix> </ExtractVariables>פריסת ה-API Proxy נכשלת כי יש אלמנט
<JSONPath>ריק בתוך האלמנט<JSONPayload>.
רזולוציה
מוודאים שהרכיב <JSONPath> של מדיניות Extract Variables מוגדר כרכיב לא ריק ותקין מתחת לרכיב <JSONPayload>. לדוגמה:
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<JSONPayload>
<Variable name="account_number" type="integer">
<JSONPath>$.account.number</JSONPath>
</Variable>
</JSONPayload>
<Source clearPayload="false">request</Source>
<VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>
MissingName
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]
דוגמה להודעת שגיאה
Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
צילום מסך לדוגמה

מטרה
אם למדיניות Extract Variables אין את המאפיין name באף אחד מרכיבי המדיניות כמו QueryParam, Header, FormParam או Variable, במקום שבו הוא נדרש, הפריסה של proxy ה-API נכשלת.
לדוגמה, השגיאה הזו מתרחשת אם המאפיין name חסר ברכיב Variable.
אבחון
מזהים את השם של מדיניות Extract Variables (חילוץ משתנים) שבה התרחשה השגיאה ואת הרכיב שבו חסר המאפיין
name. הפריטים האלה מופיעים בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הואExtract-Variables-1ושם הרכיב הואVariable:Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variableבקובץ ה-XML של מדיניות Extract Variables שנכשל, בודקים שלכל הרכיבים עם השם שנקבע בשלב 1 למעלה יש מאפיין
name. אם יש אלמנט שחסר בו מאפיין השם, זו הסיבה לשגיאה.לדוגמה, במדיניות Extract Variables הבאה מוגדר הרכיב
<Variable>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Variable type="boolean"> <Pattern>{isAccountActive}</Pattern> </Variable> </ExtractVariables>שימו לב שהמאפיין
nameחסר ברכיבVariable, ולכן הפריסה של ה-API Proxy נכשלת.
רזולוציה
מוודאים שמדיניות Extract Variables (חילוץ משתנים) מכילה את מאפיין החובה name עבור הרכיבים QueryParam, Header, FormParam או Variable. לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Variable name="account_active" type="boolean">
<Pattern>{isAccountActive}</Pattern>
</Variable>
</ExtractVariables>
PatternWithoutVariable
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Saving Revision [revision_number] Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]
דוגמה להודעת שגיאה
Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
צילום מסך לדוגמה

מטרה
אם במדיניות Extract Variables לא מצוין משתנה ברכיב <Pattern>, פריסת proxy ל-API תיכשל. רכיב <Pattern> דורש את שם המשתנה שבו יאוחסנו הנתונים שחולצו.
אבחון
מזהים את השם של מדיניות Extract Variables (חילוץ משתנים) שבה התרחשה השגיאה ואת התבנית שבה המשתנה חסר. אפשר למצוא את הפריטים האלה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
Extract-Variables-1ושם הרכיב הוא/a/b:Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.ב-XML של מדיניות Extract Variables שנכשלה, מוודאים שהתבנית שהוגדרה ברכיב
<Pattern>תואמת לתבנית שזוהתה בהודעת השגיאה (שלב 1 למעלה). לדוגמה, המדיניות הבאה מציינת תבנית/a/b, שתואמת למה שמופיע בהודעת השגיאה:לדוגמה, הנה מדיניות Extract Variables עם שלושה רכיבי
<Pattern>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractVariables-1"> <Source>request</Source> <URIPath> <Pattern ignoreCase="true">/a/{pathSeg}</Pattern> <Pattern ignoreCase="true">/a/b/</Pattern> <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern> </URIPath> <VariablePrefix>urirequest</VariablePrefix> </ExtractVariables>בודקים אם לרכיב
<Pattern>שזוהה בשלב 2 אין משתנה. משתנים צריכים להיות מוקפים בסוגריים מסולסלים. אם התבנית לא כוללת משתנה, זו הסיבה לשגיאה.הרכיב
<Pattern>עם הדפוס /a/b לא כולל משתנה, ולכן הפריסה של שרת ה-API הפרוקסי נכשלת<Pattern ignoreCase="true">/a/b/</Pattern>
רזולוציה
מוודאים שכל רכיבי <Pattern> כוללים משתנה (שם שמוקף בסוגריים מסולסלים). לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-1">
<Source>request</Source>
<URIPath>
<Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern>
<Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
</URIPath>
<VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>
CannotBeConvertedToNodeset
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Deploying Revision [revision_number] ExtractVariables [policy_name]: Result of xpath [policy_name] cannot be converted to nodeset. Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
דוגמה להודעת שגיאה
Error Deploying Revision 4 to test
ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
צילום מסך לדוגמה

מטרה
אם למדיניות Extract Variables יש ביטוי <XPath> שבו הסוג <Variable> מוגדר כ-nodeset, אבל אי אפשר להמיר את הביטוי ל-nodeset, פריסת ה-proxy ל-API תיכשל.
אבחון
מזהים את מדיניות Extract Variables (חילוץ משתנים) שבה התרחשה השגיאה ואת ה-XPath שלא ניתן להמיר ל-nodeset. שני הפריטים האלה מופיעים בהודעת השגיאה. לדוגמה, בשגיאה הבאה , שם המדיניות הוא
Extract-Variables-1ו-XPath הוא123.ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.ב-XML של מדיניות Extract Variables שנכשלה, מוודאים ש-XPath שהוגדר ברכיב
<XPath>תואם ל-XPath שזוהה בהודעת השגיאה (שלב 1 למעלה). לדוגמה, במדיניות הבאה המאפייןמוגדר כ- 123, שזהה למה שמופיע בהודעת השגיאה:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1"> <DisplayName>Extract Variables-1</DisplayName> <Properties/> <Source clearPayload="false">request</Source> <VariablePrefix>visitor</VariablePrefix> <XMLPayload stopPayloadProcessing="false"> <Namespaces/> <Variable name="age" type="nodeset"> <XPath>123</XPath> </Variable> </XMLPayload> </ExtractVariables>בודקים את הסוג של רכיב
<Variable>שמתאים ל-<XPath>שזוהה בשלב 2 למעלה. אם הערך של<Variable>הואnodeset, זה הגורם לשגיאה.שימו לב שהביטוי
<XPath>הוא123בדוגמה למדיניות Extract Variables.<XPath>123</XPath>אי אפשר להמיר את הביטוי
123ל-nodeset. לכן, פריסת ה-API Proxy נכשלת.
רזולוציה
חשוב לוודא שאפשר להמיר את הביטויים <XPath> שמשמשים במדיניות Extract Variables (חילוץ משתנים) ל-nodeset אם סוג <Variable> מוגדר כ-nodeset. לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
<DisplayName>Extract Variables-1</DisplayName>
<Properties/>
<Source clearPayload="false">request</Source>
<VariablePrefix>visitor</VariablePrefix>
<XMLPayload stopPayloadProcessing="false">
<Namespaces/>
<Variable name="age" type="nodeset">
<XPath>/visitor/age</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>
InvalidPattern
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת ומוצגת הודעת השגיאה הבאה:
Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]
דוגמה להודעת שגיאה
Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
צילום מסך לדוגמה

מטרה
אם ההגדרה של הרכיב <Pattern> לא תקינה באף אחד מהרכיבים כמו URIPath, QueryParam, Header, FormParam, XMLPayload או JSONPayload במדיניות Extract Variables, הפריסה של proxy ל-API תיכשל.
אבחון
מזהים את מדיניות Extract Variables שנכשלה מתוך הודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
Extract-Variables-2:Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.בקובץ ה-XML של מדיניות Extract Variables שנכשל, בודקים אם אחד מהרכיבים האלה מופיע וכולל רכיב
<Pattern>: URIPath,QueryParam,Header,FormParam,XMLPayloadאוJSONPayload.לדוגמה, הנה מדיניות Extract Variables עם רכיב
<Pattern>בתוך רכיב<QueryParam>:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables name="ExtractVariables-2"> <DisplayName>ExtractVariables-2</DisplayName> <Source>request</Source> <QueryParam name="code"> <Pattern ignoreCase="true">{*}</Pattern> </QueryParam> <VariablePrefix>queryinfo</VariablePrefix> </ExtractVariables>בודקים את ההגדרה של כל אחד מהרכיבים
<Pattern>. אם יש אלמנט<Pattern>עם הגדרה לא תקינה, זו הסיבה לשגיאה.בדוגמה של מדיניות Extract Variables שמוצגת למעלה, אפשר לראות שההגדרה
<Pattern>בתוך הרכיב<QueryParam>לא תקינה, ולכן הפריסה של API Proxy נכשלת. ראו גם מידע על התאמה ויצירת משתנים<Pattern ignoreCase="true">{*}</Pattern>
רזולוציה
מוודאים שההגדרה של הרכיב <Pattern> בתוך הרכיבים URIPath, QueryParam, Header, FormParam, XMLPayload או JSONPayload במדיניות Extract Variables (חילוץ משתנים) תקינה. לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-2">
<DisplayName>Extract a value from a query parameter</DisplayName>
<Source>request</Source>
<QueryParam name="code">
<Pattern ignoreCase="true">{code}</Pattern>
</QueryParam>
<VariablePrefix>queryinfo</VariablePrefix>
</ExtractVariables>
מידע נוסף על התאמה ויצירת משתנים
XPathCompilationFailed
הודעת השגיאה
פריסת ה-proxy ל-API דרך ממשק המשתמש או ה-API של Apigee נכשלת עם הודעת השגיאה הבאה:
Error Deploying Revision [revision_number] ExtractVariables [policy_name]: Failed to compile xpath [xpath] Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].
דוגמה להודעת שגיאה
Error Deploying Revision 1 to test
ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
צילום מסך לדוגמה

מטרה
אם הקידומת או הערך שמשמשים ברכיב <XPath> לא שייכים לאף אחד ממרחבי השמות שהוגדרו במדיניות Extract Variables, פריסת ה-proxy ל-API תיכשל.
מידע נוסף על מרחבי שמות, XPath ותחיליות זמין במאמר XML Namespaces and How They Affect XPath and XSLT.
אבחון
מזהים את מדיניות Extract Variables (חילוץ משתנים) שבה התרחשה השגיאה ואת ה-XPath שלא ניתן לקמפל. שני הפריטים האלה מופיעים בהודעת השגיאה. לדוגמה, בשגיאה הבאה , שם המדיניות הוא
EV-XML-Ageוה-XPath הוא/apigee:Directions/apigee:route/apigee:leg/apigee:name.ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.ב-XML של מדיניות Extract Variables שנכשלה, מוודאים ש-XPath שהוגדר ברכיב
<XPath>תואם ל-XPath שזוהה בהודעת השגיאה (שלב 1 למעלה). לדוגמה, במדיניות הבאה המאפייןמוגדר כ- /apigee:Directions/apigee:route/apigee:leg/apigee:name, שזהה למה שמופיע בהודעת השגיאה:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age"> <DisplayName>EV-XML-Age</DisplayName> <Source clearPayload="false">request</Source> <XMLPayload stopPayloadProcessing="false"> <Namespaces> <Namespace prefix="gmail">http://mail.google.com</Namespace> </Namespaces> <Variable name="legName" type="string"> <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath> </Variable> </XMLPayload> </ExtractVariables>בודקים את הרכיבים
<Namespaces>ו-<XPath>במדיניות Extract Variables (חילוץ משתנים). אם<XPath>הספציפי שמצוין בהודעת השגיאה משתמש בקידומת או בערך שלא נכללים במרחבי השמות שהוגדרו במדיניות Extract Variables, זו הסיבה לשגיאה.שימו לב שבמדיניות Extract Variables (חילוץ משתנים) לדוגמה, הקידומת
apigeeמשמשת לציון<XPath>ספציפי.<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>עם זאת, הקידומת
apigeeלא מוגדרת באף אחד מהרכיבים<Namespace>, ולכן הקומפילציה של<XPath>נכשלת ופריסת האפליקציה נכשלת.
רזולוציה
מוודאים שכל מרחבי השמות שנעשה בהם שימוש ברכיבי <XPath> מוצהרים במדיניות Extract Variables (חילוץ משתנים). לדוגמה:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
<DisplayName>EV-XML-Age</DisplayName>
<Source clearPayload="false">request</Source>
<XMLPayload stopPayloadProcessing="false">
<Namespaces>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="gmail">http://mail.google.com</Namespace>
</Namespaces>
<Variable name="legName" type="string">
<XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
</Variable>
</XMLPayload>
</ExtractVariables>