تحديد المشاكل وحلّها في ما يتعلّق بنشر سياسة التحقّق من صحة رسائل SOAP

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

InvalidResourceType

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge مع ظهور رسالة الخطأ التالية:

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> في السياسة SOAPMessage بدء الاستخدام على نوع مورد غير متوافق مع السياسة. أنواع الموارد المتوافقة هي xsd وwsdl.

التشخيص

  1. حدِّد اسم سياسة SOAPMessage بدء الاستخدام ونوع المورد غير الصالح والمستخدَم في العنصر <ResourceURL> ضِمن السياسة. يمكنك العثور على هذين العنصرَين في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم سياسة SOAPMessage بدء الاستخدام هو 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.
    
  2. افحص ملف XML الخاص بسياسة SOAPMessageHealthation الذي تعذّر تطبيقه. إذا تطابق نوع المورد المحدّد للعنصر <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> من سياسة SOAPMessage بدء الاستخدام على xsd أو wsdl، وأنّ ملف المورد يستخدم التنسيق الصحيح.

لتصحيح المثال الخاص بسياسة SOAPMessage بدء الاستخدام الظاهر أعلاه، يمكنك تعديل نوع المورد إلى 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

رسالة الخطأ

يتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge مع ظهور رسالة الخطأ التالية:

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> في سياسة SOAPMessage بدء الاستخدام يحتوي على خطأ يمنع تجميعه أثناء النشر.

التشخيص

  1. حدِّد اسم سياسة SOAPMessage بدء الاستخدام والنص البرمجي للمورد المستخدَم في النهج. يمكنك العثور على هذين العنصرَين في رسالة الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم سياسة SOAPMessage بدء الاستخدام هو 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.
    
  2. تحقَّق من ملف XML الذي تعذّر تنفيذه لسياسة SOAPMessageHealthation وتحقَّق من أنّ النص البرمجي للموارد المحدَّد للعنصر <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>
    
  3. يمكنك الاطّلاع على ملف النص البرمجي للموارد المحدّد في الخطوة 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

رسالة الخطأ

تعذُّر حفظ الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge مع ظهور رسالة الخطأ هذه:

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> في السياسة SOAPMessage بدء الاستخدام لا يحتوي على اسم العنصر الجذر.

التشخيص

  1. حدد اسم سياسة SOAPMessageHealthation الذي حدث فيه الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم سياسة SOAPMessage بدء الاستخدام هو SOAP-Message-Validation-1:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
    
  2. افحص ملف XML الخاص بسياسة SOAPMessageHealthation الذي تعذّر تطبيقه. إذا لم يكن اسم العنصر الجذر المستخدَم للتحقق محدّدًا في العنصر <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> في سياسة SOAPMessageHealthation يتضمّن العنصر الجذر الصحيح.

لتصحيح سياسة SOAPMessage بدء الاستخدام الموضّحة أعلاه، يمكنك تعديل <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

رسالة الخطأ

تعذُّر حفظ الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة Edge مع ظهور رسالة الخطأ هذه:

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> في السياسة SOAPMessage بدء الاستخدام يحتوي على اسم عنصر جذري لا يتوافق مع قواعد XML لتسمية العناصر الصالحة.

التشخيص

  1. حدد اسم سياسة SOAPMessageHealthation الذي حدث فيه الخطأ. على سبيل المثال، في الخطأ التالي، يكون اسم سياسة SOAPMessageHealthation هو SOAP-Message-Validation-1:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
    is invalid.
    
  2. افحص ملف XML الخاص بسياسة SOAPMessageHealthation الذي تعذّر تطبيقه. إذا كان اسم العنصر الجذر المحدّد في العنصر <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> في سياسة SOAPMessage بدء الاستخدام يحتوي على اسم عنصر جذر صالح.

لتصحيح سياسة SOAPMessage بدء الاستخدام الموضّحة أعلاه، يمكنك تعديل العنصر <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

رسالة الخطأ

تعذَّر نشر الخادم الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم Edge أو واجهة برمجة تطبيقات إدارة 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> بسياسة SOAPMessage بدء الاستخدام لا يحتوي على أي عناصر يمكن استخدامها للتحقق.

التشخيص

  1. حدِّد ملف المورد الذي يفتقد تعريفات العناصر من رسالة الخطأ. على سبيل المثال، في الخطأ التالي، ملف المورد المستخدَم في هو xsd://Script-1.xsd:

    Error Deploying Revision 2 to test
    Resource "xsd://Script-1.xsd" has no element definitions.
    
  2. افحص ملف المورد المحدّد في الخطوة 1. إذا لم تكن هناك عناصر محددة، فهذا هو سبب الخطأ.

    على سبيل المثال، لا يحتوي ملف المورد التالي Script-1.xsd على أي عناصر:

    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    </xsd:schema>
    

    وبسبب عدم احتواء ملف المورد على أي عناصر، ستفشل عملية النشر مع ظهور الخطأ الموضح أعلاه.

درجة الدقّة

تأكد من أن ملف المورد المستخدم في سياسة SOAPMessage بدء الاستخدام يحتوي على تعريفات العناصر ذات الصلة.

لتصحيح مثال ملف المورد المعروض أعلاه، يمكنك تعديل ملف 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>