אתם צופים במסמכי העזרה של Apigee Edge.
כניסה למסמכי העזרה של Apigee X. info
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 של מדיניות 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
, ושקובץ המשאב נעשה בו שימוש בפורמט הנכון.
כדי לתקן את המדיניות לדוגמה בנושא 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 של מדיניות 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 המחובר דרך ממשק המשתמש של 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>
במדיניות 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
הודעת השגיאה
שמירת שרת ה-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 מכיל שם תקין של רכיב בסיס.
כדי לתקן את המדיניות 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>