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.

गड़बड़ी के स्क्रीनशॉट का उदाहरण

वजह

यह गड़बड़ी तब होती है, जब SOAPMessageValidation नीति में <ResourceURL> एलिमेंट को ऐसे रिसॉर्स टाइप पर सेट किया जाता है जो नीति के साथ काम नहीं करता. 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 नहीं है. इसलिए, डिप्लॉयमेंट नहीं हो पाएगा और ऊपर बताई गई गड़बड़ी दिखेगी.

रिज़ॉल्यूशन

पक्का करें कि SOAPMessageValidation नीति के <ResourceURL>एलिमेंट में बताए गए संसाधन प्रकार को 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 मैनेजमेंट एपीआई की मदद से, एपीआई प्रॉक्सी को डिप्लॉय करने पर गड़बड़ी का यह मैसेज दिखता है:

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.

गड़बड़ी के स्क्रीनशॉट का उदाहरण

वजह

यह गड़बड़ी तब होती है, जब SOAPMessageValidation नीति के <ResourceURL> एलिमेंट में रेफ़र की गई रिसॉर्स स्क्रिप्ट में कोई गड़बड़ी होती है. इस वजह से, डिप्लॉयमेंट के दौरान उसे कंपाइल नहीं किया जा सकता.

संक्रमण की जांच

  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अमान्य यूआरएल पर ले जाता है, इसलिए ऊपर बताई गई गड़बड़ी के साथ डिप्लॉयमेंट पूरा नहीं हो पाएगा.

रिज़ॉल्यूशन

पक्का करें कि SOAPMessageValidation नीति के <ResourceURL> एलिमेंट में बताई गई रिसॉर्स स्क्रिप्ट में ऐसी कोई समस्या न हो जो इसे कंपाइल करने से रोक रही हो.

ऊपर दिखाई गई 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

गड़बड़ी का मैसेज

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.

गड़बड़ी के स्क्रीनशॉट का उदाहरण

वजह

यह गड़बड़ी तब होती है, जब SOAPMessageValidation नीति में मौजूद <Element> एलिमेंट में रूट एलिमेंट का नाम शामिल न हो.

संक्रमण की जांच

  1. उस SOAPMessageValidation नीति का नाम पहचानें जहां गड़बड़ी हुई है. उदाहरण के लिए, यहां दी गई गड़बड़ी में, SOAPMessageValidation नीति का नाम SOAP-Message-Validation-1 है:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name is not specified.
    
  2. 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>
    

    रूट एलिमेंट का नाम नहीं दिया गया है, इसलिए डिप्लॉयमेंट नहीं हो पाएगा और ऊपर बताई गई गड़बड़ी दिखेगी.

रिज़ॉल्यूशन

पक्का करें कि SOAPMessageValidation नीति के <Element> एलिमेंट में सही रूट एलिमेंट शामिल हो.

ऊपर दिखाई गई 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 मैनेजमेंट एपीआई की मदद से, एपीआई प्रॉक्सी को सेव करने पर, गड़बड़ी का यह मैसेज दिखता है:

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.

गड़बड़ी के स्क्रीनशॉट का उदाहरण

वजह

यह गड़बड़ी तब होती है, जब SOAPMessageValidation नीति में मौजूद <Element> एलिमेंट में, रूट एलिमेंट का ऐसा नाम हो जो एलिमेंट के नाम रखने के लिए एक्सएमएल के नियमों का पालन न करता हो.

संक्रमण की जांच

  1. उस SOAPMessageValidation नीति का नाम पहचानें जहां गड़बड़ी हुई है. उदाहरण के लिए, यहां दी गई गड़बड़ी में, SOAPMessageValidation नीति का नाम SOAP-Message-Validation-1 है:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
    is invalid.
    
  2. 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">1GetPriceResponse</Element>
        <SOAPMessage/>
        <Source>request</Source>
        <ResourceURL>xsd://Script-1.xsd</ResourceURL>
    </MessageValidation>
    

रिज़ॉल्यूशन

पक्का करें कि SOAPMessageValidation नीति के <Element> एलिमेंट में, रूट एलिमेंट का मान्य नाम हो.

ऊपर दिखाई गई 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 मैनेजमेंट एपीआई की मदद से, एपीआई प्रॉक्सी को डिप्लॉय करने पर गड़बड़ी का यह मैसेज दिखता है:

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.

गड़बड़ी के स्क्रीनशॉट का उदाहरण

वजह

यह गड़बड़ी तब होती है, जब SOAPMessageValidation नीति के <Resource> एलिमेंट में बताई गई संसाधन फ़ाइल में कोई ऐसा एलिमेंट न हो जिसका इस्तेमाल पुष्टि करने के लिए किया जा सके.

संक्रमण की जांच

  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>