מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
InvalidResourceType
הודעת שגיאה
כשפורסים את שרת ה-proxy ל-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>
במדיניות SOAPMessageValidation מוגדר סוג משאב שלא נתמך על ידי המדיניות. סוגי המשאבים הנתמכים הם 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 של מדיניות SOAPMessageUpdateation שנכשל. אם סוג המשאב שצוין בשביל הרכיב
<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
, ושהפורמט של קובץ המשאב תקין.
כדי לתקן את המדיניות לדוגמה בנושא SOAPMessageValidation שמוצגת למעלה, אפשר לשנות את סוג המשאב ל-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
הודעת שגיאה
כשפורסים את שרת ה-proxy ל-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 של מדיניות SOAPMessageUpdateation שנכשלה ולוודא שסקריפט המשאב שצוין עבור הרכיב
<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
הודעת שגיאה
שמירת ה-proxy ל-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 של מדיניות SOAPMessageUpdateation שנכשל. אם השם של רכיב הבסיס משמש לאימות לא מצוין ברכיב
<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>
של המדיניות SOAPMessageValidation מכיל
רכיב השורש הנכון.
כדי לתקן את המדיניות 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
הודעת שגיאה
שמירת ה-proxy ל-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 של מדיניות SOAPMessageUpdateation שנכשל. אם השם של רכיב הבסיס שצוין ברכיב
<Element>
לא תואם לקריטריונים של קובץ XML חוקי שם הרכיב, זו הסיבה לשגיאה.לדוגמה, למדיניות הבאה יש שם של רכיב ברמה הבסיסית (root) שמתחיל ב- המספר לא חוקי. גם שם רכיב שמכיל רווחים לא יהיה חוקי.
<?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 מכיל
שם תקין של רכיב בסיס.
כדי לתקן את המדיניות 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>
NoElements
הודעת שגיאה
נכשלה הפריסה של שרת ה-proxy ל-API דרך ממשק המשתמש של Edge או Edge Management API עם הודעת השגיאה הזו:
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>
הפריסה תיכשל כי קובץ המשאב לא מכיל רכיבים לשגיאה שמוצגת למעלה.
רזולוציה
יש לוודא שקובץ המשאבים שנעשה בו שימוש במדיניות SOAPMessageValidation מכיל את הגדרות הרכיבים הרלוונטיים.
כדי לתקן את קובץ המשאב לדוגמה שמוצג למעלה, אפשר לשנות את הקובץ 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>