כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של
Apigee X. מידע
InvalidResourceType
הודעת שגיאה
כשפורסים את ה-API של ה-API דרך ממשק המשתמש של Edge או Edge management API, מוצגת הודעת השגיאה הבאה:
Error Deploying Revision revision_number to environment MessageValidation soap_message_validation_policy: Invalid Resource Type resource_type. It should be xsd or wsdl. Context Revision:revision_number;APIProxy:apiproxy_name;Organization:organization;Environment:environment.
הודעת שגיאה לדוגמה
Error Deploying Revision 1 to test
MessageValidation SOAP-Message-Validation-1: Invalid Resource Type py.
It should be xsd or wsdl. Context Revision:1;APIProxy:soapmessagevalidation;
Organization:gsc-hipaa;Environment:test.
צילום מסך של שגיאה לדוגמה
סיבה
השגיאה הזו מתרחשת אם הרכיב <ResourceURL>
במדיניות SOAPMessageAuthentication מוגדר לסוג משאב שלא נתמך במדיניות. סוגי המשאבים הנתמכים הם xsd
ו-wsdl
.
אבחון
צריך לזהות את שם המדיניות SOAPMessageValidation ואת סוג המשאב הלא חוקי שנעשה בו שימוש ברכיב
<ResourceURL>
של המדיניות. ניתן למצוא את שני הפריטים האלה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות SOAPMessageValidation הואSOAP-Message-Validation-1
וסוג המשאב הואpy
.Error Deploying Revision 1 to test MessageValidation SOAP-Message-Validation-1: Invalid Resource Type py. It should be xsd or wsdl. Context Revision:1;APIProxy:soapmessagevalidation;Organization:gsc- hipaa;Environment:test.
צריך לבדוק את ה-XML של מדיניות SOAPMessageValidation שנכשל. אם סוג המשאב שצוין עבור הרכיב
<ResourceURL>
תואם לסוג המשאב הלא חוקי שזוהה בשלב 1 למעלה, זו הסיבה לשגיאה.לדוגמה, במדיניות הבאה מצוין סוג המשאב כ-
py
, שתואם לתוכן בהודעת השגיאה:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://sample.com"> sampleObject</Element> <SOAPMessage/> <Source>request</Source> <ResourceURL>py://Script-1.py</ResourceURL> </MessageValidation>
מכיוון שסוג המשאב ב-
<ResourceURL>
הוא לאxsd
אוwsdl
, הפריסה תיכשל ותופיע השגיאה שמופיעה למעלה.
רזולוציה
יש לוודא שסוג המשאב שצוין באלמנט <ResourceURL>
של המדיניות SOAPMessageValidation הוא xsd
או wsdl
, ושהפורמט של קובץ המשאבים הוא נכון.
כדי לתקן את הדוגמה של מדיניות SOAPMessageAuthentication שמוצגת למעלה, אפשר לשנות את סוג המשאב ל-xsd
או ל-wsdl
:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageValidation async="false" continueOnError="false" enabled="true"
name="SOAP-Message-Validation-1">
<DisplayName>SOAP Message Validation-1</DisplayName>
<Properties/>
<Element namespace="http://sample.com"> sampleObject</Element>
<SOAPMessage/>
<Source>request</Source>
<ResourceURL>wsdl://SOAP-Message-Validation-1.wsdl</ResourceURL>
</MessageValidation>
ResourceCompileFailed
הודעת שגיאה
כשפורסים את ה-API של ה-API דרך ממשק המשתמש של Edge או Edge management API, מוצגת הודעת השגיאה הבאה:
Error Deploying Revision revision_number to environment MessageValidation soap_message_validation_policy: Failed to compile resource resource. Context Revision:revision_number;APIProxy:apiproxy_name;Organization:organization;Environment:environment.
הודעת שגיאה לדוגמה
Error Deploying Revision 1 to test
MessageValidation SOAP-Message-Validation-1: Failed to compile resource SOAP-Message-Validation-1.wsdl. Context Revision:1;APIProxy:soapmessagevalidation;Organization:gsc-hipaa;Environment:test.
צילום מסך של שגיאה לדוגמה
סיבה
השגיאה הזו מתרחשת אם סקריפט המשאב שמפנה ברכיב <ResourceURL>
של המדיניות SOAPMessageValidation מכיל שגיאה שמונעת את ההידור שלו במהלך הפריסה.
אבחון
מזהים את שם המדיניות SOAPMessageValidation ואת סקריפט המשאב שבו נעשה שימוש במדיניות. ניתן למצוא את שני הפריטים האלה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות SOAPMessageValidation הוא
SOAP-Message-Validation-1
והסקריפט של המשאב הואSOAP-Message-Validation-1.wsdl
.Error Deploying Revision 1 to test MessageValidation SOAP-Message-Validation-1: Failed to compile resource SOAP-Message-Validation-1.wsdl. Context Revision:1;APIProxy:soapmessagevalidation;Organization:gsc-hipaa; Environment:test.
צריך לבדוק את קובץ ה-XML של מדיניות SOAPMessageValidation שנכשל ולוודא שסקריפט המשאב שצוין עבור הרכיב
<ResourceURL>
תואם למה שמופיע בהודעת השגיאה.לדוגמה, המדיניות הבאה מציינת שהרכיב
<ResourceURL>
הואSOAP-Message-Validation-1.wsdl
, שתואם לתוכן בהודעת השגיאה:<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://sample.com"> sampleObject</Element> <SOAPMessage/> <Source>request</Source> <ResourceURL>wsdl://SOAP-Message-Validation-1.wsdl</ResourceURL> </MessageValidation>
בודקים את קובץ סקריפט המשאבים שזוהה בשלב 1 ובודקים אם יש בעיות פוטנציאליות שעלולות לגרום לשגיאות הידור.
הנה דוגמה לקובץ סקריפט משאבים:
<?xml version="1.0" encoding="ISO-8859-1"?> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsd/"> <wsdl:types> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="request" type="xs:string"/> </xs:schema> </wsdl:types> </wsdl:definitions>
xmlns:wsdl
מפנה לכתובת URL לא תקינה, ולכן הפריסה תיכשל ותופיע השגיאה שמוצגת למעלה.
רזולוציה
צריך לוודא שבסקריפט המשאב שצוין ברכיב <ResourceURL>
של המדיניות SOAPMessageValidation אין בעיות שמונעות את ההידור שלו.
כדי לתקן את הסקריפט SOAP-Message-Validation-1.wsdl
שלמעלה, אפשר לשנות את הערך xmlns:wsdl
כך שיפנה לכתובת URL תקינה:
<?xml version="1.0" encoding="ISO-8859-1"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="request" type="xs:string"/>
</xs:schema>
</wsdl:types>
</wsdl:definitions>
RootElementNameUnspecified
הודעת שגיאה
כששומרים את ה-API של ה-API דרך ממשק המשתמש של Edge או דרך Edge management API, הודעת השגיאה הבאה:
Error Saving Revision revision_number MessageValidation soap_message_validation_policy: RootElement name is not specified.
הודעת שגיאה לדוגמה
Error Saving Revision 2
MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
צילום מסך של שגיאה לדוגמה
סיבה
השגיאה הזו מתקבלת אם הרכיב <Element>
במדיניות SOAPMessageValidation לא מכיל את השם של רכיב הבסיס.
אבחון
מזהים את שם המדיניות SOAPMessageValidation שבו התרחשה השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות SOAPMessageValidation הוא
SOAP-Message-Validation-1
:Error Saving Revision 2 MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
צריך לבדוק את ה-XML של מדיניות SOAPMessageValidation שנכשל. אם שם רכיב הבסיס המשמש לאימות לא מצוין ברכיב
<Element>
, זו הסיבה לשגיאה.לדוגמה, במדיניות הבאה לא מצוין השם של רכיב הבסיס:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://schemas.xmlsoap.org/soap/prices"/> <SOAPMessage/> <Source>request</Source> <ResourceURL>xsd://Script-1.xsd</ResourceURL> </MessageValidation>
מכיוון שלא צוין שם רכיב הבסיס, הפריסה תיכשל ותופיע השגיאה המוצגת למעלה.
רזולוציה
מוודאים שהרכיב <Element>
של המדיניות SOAPMessageAuthentication מכיל את רכיב הבסיס הנכון.
כדי לתקן את מדיניות SOAPMessageValidation שמופיעה למעלה, אפשר לשנות את
<Element>
ולהוסיף רכיב בסיס חוקי כמו שמתואר בהמשך:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageValidation async="false" continueOnError="false" enabled="true"
name="SOAP-Message-Validation-1">
<DisplayName>SOAP Message Validation-1</DisplayName>
<Properties/>
<Element namespace="http://schemas.xmlsoap.org/soap/prices">GetPriceResponse</Element>
<SOAPMessage/>
<Source>request</Source>
<ResourceURL>xsd://Script-1.xsd</ResourceURL>
</MessageValidation>
InvalidRootElementName
הודעת שגיאה
כששומרים את ה-API של ה-API דרך ממשק המשתמש של Edge או דרך Edge management API, הודעת השגיאה הבאה:
Error Saving Revision revision_number MessageValidation soap_message_validation_policy: RootElement name root_element_name is invalid.
הודעת שגיאה לדוגמה
Error Saving Revision 2
MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
is invalid.
צילום מסך של שגיאה לדוגמה
סיבה
השגיאה הזו מתקבלת אם הרכיב <Element>
במדיניות SOAPMessageValidation
מכיל שם של רכיב בסיס שלא תואם לכללי ה-XML לבחירת שמות חוקיים של רכיבים.
אבחון
מזהים את שם המדיניות SOAPMessageValidation שבו התרחשה השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות SOAPMessageValidation הוא
SOAP-Message-Validation-1
:Error Saving Revision 2 MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse is invalid.
צריך לבדוק את ה-XML של מדיניות SOAPMessageValidation שנכשל. אם שם רכיב הבסיס שצוין ברכיב
<Element>
לא תואם לקריטריונים של שם רכיב XML חוקי, זו הסיבה לשגיאה.לדוגמה, במדיניות הבאה יש שם של רכיב בסיס שמתחיל במספר, שאינו חוקי. גם שם רכיב שמכיל רווחים לא יהיה חוקי.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://schemas.xmlsoap.org/soap/prices">1GetPriceResponse</Element> <SOAPMessage/> <Source>request</Source> <ResourceURL>xsd://Script-1.xsd</ResourceURL> </MessageValidation>
רזולוציה
מוודאים שהרכיב <Element>
במדיניות SOAPMessageValidation מכיל שם חוקי של רכיב בסיס.
כדי לתקן את המדיניות SOAPMessageAuthentication שלמעלה, אפשר לשנות את הרכיב <Element>
כך שיכיל שם חוקי של רכיב בסיס, כפי שמוצג בהמשך:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageValidation async="false" continueOnError="false" enabled="true" name="SOAP-Message-Validation-1">
<DisplayName>SOAP Message Validation-1</DisplayName>
<Properties/>
<Element namespace="http://schemas.xmlsoap.org/soap/prices">GetPriceResponse</Element>
<SOAPMessage/>
<Source>request</Source>
<ResourceURL>xsd://Script-1.xsd</ResourceURL>
</MessageValidation>
NoElements
הודעת שגיאה
הודעת השגיאה הבאה פירשה את ה-API של שרת ה-proxy דרך ממשק המשתמש של Edge או דרך ממשק ה-API לניהול Edge:
Error Deploying Revision revision_number Resource "resource_url" has no element definitions.
הודעת שגיאה לדוגמה
Error Deploying Revision 2 to test
Resource "xsd://Script-1.xsd" has no element definitions.
צילום מסך של שגיאה לדוגמה
סיבה
השגיאה הזו מתרחשת אם קובץ המשאבים שצוין ברכיב <Resource>
של המדיניות SOAPMessageValidation לא מכיל רכיבים שאפשר להשתמש בהם לאימות.
אבחון
זהו את קובץ המשאב שחסרות בו הגדרות רכיבים בהודעת השגיאה. לדוגמה, בשגיאה הבאה, קובץ המשאב שנעשה בו שימוש ב-
xsd://Script-1.xsd
הוא:Error Deploying Revision 2 to test Resource "xsd://Script-1.xsd" has no element definitions.
בודקים את קובץ המשאבים שזוהה בשלב 1. אם לא הוגדרו רכיבים, זה הגורם לשגיאה.
לדוגמה, קובץ המשאבים הבא
Script-1.xsd
לא מכיל רכיבים:<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> </xsd:schema>
מאחר שקובץ המשאבים לא כולל רכיבים, הפריסה תיכשל ותופיע השגיאה שמופיעה למעלה.
רזולוציה
מוודאים שקובץ המשאבים שכלול במדיניות SOAPMessageAuthentication מכיל את הגדרות הרכיב הרלוונטיות.
כדי לתקן את קובץ המשאב לדוגמה שמוצג למעלה, אפשר לשנות את הקובץ xsd
כך שיוסיף את התוכן הבא:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="shipOrder" type="order"/>
<xsd:complexType name="order">
<xsd:sequence>
<xsd:element name="shipTo" type="shipAddress"/>
<xsd:element name="items" type="cdItems"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="shipAddress">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="address" type="xsd:string"/>
<xsd:element name="country" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="cdItems">
<xsd:sequence>
<xsd:element name="item" type="cdItem" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="cdItem">
<xsd:sequence>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="quantity" type="xsd:integer"/>
<xsd:element name="price" type="xsd:decimal"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>