عیب‌یابی خطای استقرار خط‌مشی «اعتبارسنجی پیام SOAP»

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

InvalidResourceType

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر 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> در خط‌مشی 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. «زبان نشانه‌گذاری توسعه‌پذیر» خط‌مشی SOAPMessageValidation ناموفق را بررسی کنید. اگر نوع منبع مشخص‌شده برای عنصر <ResourceURL> با نوع منبع نامعتبر شناسایی‌شده در «مرحله ۱» در بالا مطابقت داشته باشد، دلیل خطا همین است.

    برای مثال، خط‌مشی زیر نوع منبع را به‌عنوان 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>خط‌مشی «اعتبارسنجی پیام SOAP» روی 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

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر 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> خط‌مشی 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. «زبان نشانه‌گذاری توسعه‌پذیر» خط‌مشی 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. فایل نوشتاری منبع شناسایی‌شده در «مرحله ۱» را مشاهده کنید و ببینید آیا مشکلات بالقوه‌ای وجود دارد که می‌تواند منجر به خطاهای ترجمه شود یا نه.

    در اینجا نمونه‌ای از فایل نوشتاری منبع آورده شده است:

    <?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به نشانی وب نامعتبری اشاره می‌کند، استقرار با خطای نشان‌داده‌شده در بالا ناموفق خواهد بود.

وضوح

مطمئن شوید که نوشتار منبع مشخص‌شده در عنصر <ResourceURL> خط‌مشی SOAPMessageValidation هیچ مشکلی نداشته باشد که مانع از گردآوری آن شود.

برای اصلاح کردن دستورگان SOAP-Message-Validation-1.wsdl نشان‌داده‌شده در بالا، می‌توانید xmlns:wsdl را تغییر دهید تا به نشانی وب معتبری اشاره کند:

<?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 UI یا 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. نام خط‌مشی «اعتبارسنجی پیام SOAP» را که خطا در آن رخ داده است شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی 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

پیام خطا

ذخیره کردن پراکسی API ازطریق Edge UI یا 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. نام خط‌مشی «اعتبارسنجی پیام SOAP» را که خطا در آن رخ داده است شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی 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> خط‌مشی «اعتبارسنجی پیام SOAP» حاوی نام عنصر ریشه معتبر باشد.

برای اصلاح خط‌مشی 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

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر 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> خط‌مشی SOAPMessageValidation حاوی هیچ عنصری نباشد که بتوان از آن برای اعتبارسنجی استفاده کرد.

تشخیص

  1. از پیام خطا، فایل منبعی را که تعریف‌های عنصر در آن وجود ندارد شناسایی کنید. برای مثال، در خطای زیر، فایل منبع استفاده‌شده در xsd://Script-1.xsd است:

    Error Deploying Revision 2 to test
    Resource "xsd://Script-1.xsd" has no element definitions.
    
  2. فایل منبع شناسایی‌شده در «مرحله ۱» را بررسی کنید. اگر هیچ عنصری تعریف نشده باشد، این دلیل خطا است.

    برای مثال، فایل منبع زیر 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>