SOAP মেসেজ যাচাইকরণ নীতি প্রয়োগ সংক্রান্ত সমস্যার সমাধান করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

InvalidResourceType

ত্রুটি বার্তা

Edge UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে 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. SOAPMessageValidation নীতি XML কাজ না করার কারণ পরীক্ষা করুন। <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>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 UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে 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.

সমস্যার স্ক্রিনশটের উদাহরণ

কারণ

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 নীতি XML পরীক্ষা করুন এবং যাচাই করুন যে <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একটি ভুল URL-এর দিকে নির্দেশ করছে বলে, উপরে দেখানো সমস্যাটি সহ ডেপ্লয়মেন্ট ব্যর্থ হবে।

রেজোলিউশন

SOAPMessageValidation নীতির <ResourceURL> এলিমেন্টে নির্দিষ্ট করা রিসোর্স স্ক্রিপ্টে এমন কোনও সমস্যা নেই যা এটিকে কম্পাইল করা থেকে বাধা দেয় তা নিশ্চিত করুন।

উপরে দেখানো 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 UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে 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.

সমস্যার স্ক্রিনশটের উদাহরণ

কারণ

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 নীতি XML কাজ না করার কারণ পরীক্ষা করুন। ভ্যালিডেশনের জন্য ব্যবহৃত রুট এলিমেন্টের নাম <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 UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে 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.

সমস্যার স্ক্রিনশটের উদাহরণ

কারণ

SOAPMessageValidation নীতিতে <Element> এলিমেন্টে যদি এমন কোনও রুট এলিমেন্টের নাম থাকে যা এলিমেন্টের নামকরণের জন্য XML নিয়ম মেনে চলে না, তাহলে এই সমস্যা হয়।

ডায়াগনসিস

  1. যেখানে সমস্যা হয়েছে সেই SOAPMessageValidation নীতির নাম শনাক্ত করুন। যেমন, নিচের এই সমস্যার ক্ষেত্রে, SOAPMessageValidation নীতির নাম হল SOAP-Message-Validation-1:

    Error Saving Revision 2
    MessageValidation SOAP-Message-Validation-1: RootElement name 1GetPriceResponse
    is invalid.
    
  2. SOAPMessageValidation নীতি XML কাজ না করার কারণ পরীক্ষা করুন। <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>
    

রেজোলিউশন

নিশ্চিত করুন যে 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 UI বা Edge ম্যানেজমেন্ট API-এর মাধ্যমে 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.

সমস্যার স্ক্রিনশটের উদাহরণ

কারণ

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>