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

أنت تطّلع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

InvalidResourceType

رسالة الخطأ

يتعذّر نشر الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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.

التشخيص

  1. حدِّد اسم السياسة 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.
    
  2. راجِع ملف 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

رسالة الخطأ

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

التشخيص

  1. حدِّد اسم سياسة 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.
    
  2. راجِع ملف 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>
    
  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 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 لا يحتوي على اسم العنصر الجذر.

التشخيص

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

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
    
  2. راجِع ملف 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

رسالة الخطأ

يتعذّر حفظ الوكيل لواجهة برمجة التطبيقات من خلال واجهة مستخدم 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 الخاصة باسم العنصر الصالح.

التشخيص

  1. حدِّد اسم سياسة SOAPMessageValidation التي حدث فيها الخطأ. على سبيل المثال، في الخطأ التالي، اسم سياسة SOAPMessageValidation هو SOAP-Message-Validation-1:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
    is invalid.
    
  2. يجب فحص ملف 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

رسالة الخطأ

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

التشخيص

  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>
    

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

الدقة

تأكَّد من أنّ ملف الموارد المستخدَم في سياسة 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>