SOAPMessage Validation নীতি

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

SOAPMessageValidation নীতি নিম্নলিখিত কাজ করে:

  • তাদের XSD স্কিমাগুলির বিরুদ্ধে যেকোনো XML বার্তা যাচাই করে৷
  • একটি WSDL সংজ্ঞার বিরুদ্ধে SOAP বার্তা যাচাই করে
  • JSON এবং XML বার্তাগুলির সুগঠিততা নির্ধারণ করে

UI-তে এই নীতির নাম হল "SOAP মেসেজ ভ্যালিডেশন", পলিসিটি শুধু SOAP মেসেজের চেয়ে বেশি বৈধ করে। এই বিভাগটি নীতিকে "বার্তা যাচাইকরণ নীতি" হিসাবে উল্লেখ করে।

<MessageValidation> উপাদান

বার্তা যাচাইকরণ নীতি সংজ্ঞায়িত করে।

ডিফল্ট মান নীচে ডিফল্ট নীতি ট্যাব দেখুন
প্রয়োজন? ঐচ্ছিক
টাইপ জটিল বস্তু
অভিভাবক উপাদান n/a
শিশু উপাদান <DisplayName>
<Element>
<ResourceURL>
<SOAPMessage>
<Source>

সিনট্যাক্স

<MessageValidation> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

<MessageValidation
  continueOnError="[false|true]"
  enabled="[true|false]"
  name="policy_name"
>
    <!-- All MessageValidation child elements are optional -->
    <DisplayName>policy_display_name</DisplayName>
    <Element namespace="element_namespace">element_to_validate</Element>
    <SOAPMessage version="[ 1.1 | 1.2 | 1.1/1.2 ]"/>
    <Source>message_to_validate</Source>
    <ResourceURL>validation_WSDL_or_XSD</ResourceURL>

</MessageValidation>

ডিফল্ট নীতি

নিম্নলিখিত উদাহরণটি ডিফল্ট সেটিংস দেখায় যখন আপনি এজ UI-তে আপনার প্রবাহে একটি বার্তা যাচাইকরণ নীতি যোগ করেন:

<MessageValidation 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>

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to "false" to return an error when a policy fails. This is expected behavior for most policies. Set to "true" to have flow execution continue even after a policy fails.
enabled true Optional Set to "true" to enforce the policy. Set to "false" to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

উদাহরণ

নিম্নলিখিত উদাহরণগুলি কিছু উপায় দেখায় যেখানে আপনি বার্তা যাচাইকরণ নীতি ব্যবহার করতে পারেন:

1: XSD বৈধতা

আপনি একটি XSD স্কিমার বিরুদ্ধে একটি XML বার্তা অনুরোধের পেলোড যাচাই করতে বার্তা যাচাইকরণ নীতি ব্যবহার করতে পারেন৷

  1. একটি নতুন XSD রিসোর্স ফাইল তৈরি করুন। উদাহরণস্বরূপ, "note-schema.xsd":
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="note">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="to" type="xs:string"/>
            <xs:element name="from" type="xs:string"/>
            <xs:element name="heading" type="xs:string"/>
            <xs:element name="body" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:schema>
  2. আপনার প্রক্সি এন্ডপয়েন্টের প্রাক-প্রবাহে SOAP বার্তা যাচাইকরণ নীতি যোগ করুন:
    1. <ResourceURL> উপাদানের সাথে আপনার XSD রিসোর্স ফাইলের অবস্থান নির্দিষ্ট করুন। যেমন:
      ...
        <ResourceURL>xsd://note-schema.xsd</ResourceURL>
      ...
    2. নীতির সংজ্ঞা থেকে <SOAPMessage> এবং <Element> উপাদানগুলি সরান।

    আপনার নীতি সংজ্ঞা নিম্নলিখিত মত হওয়া উচিত:

    <MessageValidation continueOnError="false"
        enabled="true" name="validateXMLRequest">
      <DisplayName>My XML Validator</DisplayName>
      <Properties/>
      <Source>request</Source>
      <ResourceURL>xsd://note-schema.xsd</ResourceURL>
    </MessageValidation>
  3. বার্তা পেলোড হিসাবে আপনার XML সহ আপনার API প্রক্সিতে একটি POST অনুরোধ পাঠান, যেমনটি নিম্নলিখিত উদাহরণটি দেখায়:
    curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock
      -d '<note>
      <to>Fred Rogers</to>
      <from>Nick Danger</from>
      <heading>Greetings from my neighborhood</heading>
      <body>Just writing to say hello.</body>
    </note>'

    লক্ষ্য করুন যে Content-type শিরোনাম "অ্যাপ্লিকেশন/এক্সএমএল" এ সেট করা আছে।

    আপনি পেলোডের জন্য একটি ডেটা ফাইলও তৈরি করতে পারেন এবং নিম্নলিখিতগুলির মতো একটি কমান্ড দিয়ে এটি উল্লেখ করতে পারেন:

    curl -v -X POST -H 'Content-type: application/xml' http://my-test.apigee.net/v1/xsd-mock
      --data '@../examples/note-payload.xml'

আপনার একটি HTTP 200 প্রতিক্রিয়া পাওয়া উচিত। আপনার টার্গেট এন্ডপয়েন্টের উপর নির্ভর করে, আপনি অনুরোধ সম্পর্কে অতিরিক্ত বিবরণ পেতে পারেন। উদাহরণ স্বরূপ, আপনি যদি আপনার টার্গেট এন্ডপয়েন্ট হিসেবে http://httpbin.org/post ব্যবহার করেন এবং -v (verbose) আউটপুট নির্দিষ্ট করেন, তাহলে প্রতিক্রিয়া নিম্নলিখিতগুলির মতো হওয়া উচিত:

< HTTP/1.1 200 OK
< Date: Wed, 16 May 2018 21:24:54 GMT
< Content-Type: application/xml
< Content-Length: 431
< Connection: keep-alive
< Server: gunicorn/19.8.1
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Via: 1.1 vegur
{
  "args":{},
  "data":"<note><to>fred</to><from>nick</from><heading>hello</heading>
    <body>Just writing to say hello.</body></note>",
  "files":{},
  "form":{},
  "headers": {
    "Accept":"*/*",
    "Connection":"close",
    "Content-Length":"106",
    "Content-Type":"application/xml",
    "Host":"httpbin.org",
    "User-Agent":"curl/7.58.0"
  },
  "json":null,
  "origin":"10.1.1.1, 104.154.179.1",
  "url":"http://httpbin.org/post"
}

আপনার XSD বৈধতা কাজ করছে কিনা তা যাচাই করতে, আপনার অনুরোধের মূল অংশে অন্য ট্যাগ ঢোকানোর চেষ্টা করুন। যেমন:

curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock
  -d '<note>
  <to>Fred Rogers</to>
  <from>Nick Danger</from>
  <heading>Greetings from my neighborhood</heading>
  <body>Just writing to say hello.</body>
  <badTag>Not good</badTag>
</note>'

আপনি একটি বৈধতা ত্রুটি প্রাপ্ত করা উচিত.

2: SOAP বৈধতা

আপনি WSDL এর বিরুদ্ধে একটি SOAP বার্তা অনুরোধের পেলোড যাচাই করতে বার্তা যাচাইকরণ নীতি ব্যবহার করতে পারেন।

  1. একটি নতুন WSDL রিসোর্স ফাইল তৈরি করুন। উদাহরণস্বরূপ, "example-wsdl.wsdl":
  2. আপনার প্রক্সি এন্ডপয়েন্টের প্রাক-প্রবাহে SOAP বার্তা যাচাইকরণ নীতি যোগ করুন:
    1. আপনি যে SOAP প্রোটোকলের বিরুদ্ধে যাচাই করতে চান তার সংস্করণে <SOAPMessage> উপাদানের version বৈশিষ্ট্য সেট করুন। উদাহরণস্বরূপ, "1.1":
      ...
        <SOAPMessage version="1.1"/>
      ...
    2. আপনি যে উপাদানটিকে যাচাই করতে চান সেই উপাদানটিতে <Element> উপাদানটির মান সেট করুন:
      ...
        <Element namespace="https://example.com/gateway">getID</Element>
      ...

      <Element> SOAP অনুরোধের খামে <Body> উপাদানের অধীনে প্রথম সন্তানকে নির্দিষ্ট করে।

      সেই সন্তানের জন্য নামস্থানে namespace অ্যাট্রিবিউট সেট করুন।

    3. <ResourceURL> উপাদানের সাথে আপনার WSDL রিসোর্স ফাইলের অবস্থান নির্দিষ্ট করুন। যেমন:
      ...
        <ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL>
      ...

    আপনার নীতি সংজ্ঞা নিম্নলিখিত মত হওয়া উচিত:

    <MessageValidation continueOnError="false"
        enabled="true" name="validateSOAPRequest">
      <DisplayName>My SOAP Validator</DisplayName>
      <Properties/>
      <Source>request</Source>
      <SOAPMessage version="1.1"/>
      <Element namespace="https://example.com/gateway">getID</Element>
      <ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL>
    </MessageValidation>
  3. বার্তা পেলোড হিসাবে SOAP খামের সাথে আপনার API প্রক্সিতে একটি POST অনুরোধ পাঠান, যেমনটি নিম্নলিখিত উদাহরণটি দেখায়:
    curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock
      -d '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
        xmlns:prox="https://example.com/gateway" xmlns:typ="https://example.com/gateway/types">
      <soapenv:Header/>
      <soapenv:Body>
        <prox:getID>
          <typ:MyType>
            <typ:ID>42</typ:ID>
          </typ:MyType>
        </prox:getID>
      </soapenv:Body>
    </soapenv:Envelope>'

    লক্ষ্য করুন যে Content-type শিরোনাম "অ্যাপ্লিকেশন/এক্সএমএল" এ সেট করা আছে।

    আপনি পেলোডের জন্য একটি ডেটা ফাইলও তৈরি করতে পারেন এবং নিম্নলিখিতগুলির মতো একটি কমান্ড দিয়ে এটি উল্লেখ করতে পারেন:

    curl -v -X POST -H 'Content-type: application/xml' http://my-test.apigee.net/v1/xsd-mock
      --data '@../examples/soap-payload.xml'

আপনার একটি HTTP 200 প্রতিক্রিয়া পাওয়া উচিত। আপনার টার্গেট এন্ডপয়েন্টের উপর নির্ভর করে, আপনি অনুরোধ সম্পর্কে অতিরিক্ত বিবরণ পেতে পারেন। উদাহরণ স্বরূপ, আপনি যদি আপনার টার্গেট এন্ডপয়েন্ট হিসাবে http://httpbin.org/post ব্যবহার করেন, তাহলে প্রতিক্রিয়া নিম্নলিখিতগুলির মতো হওয়া উচিত:

< HTTP/1.1 200 OK
< Date: Wed, 16 May 2018 21:24:54 GMT
< Content-Type: application/xml
< Content-Length: 431
< Connection: keep-alive
< Server: gunicorn/19.8.1
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Credentials: true
< Via: 1.1 vegur
{
  "args":{},
  "data":"<note><to>fred</to><from>nick</from><heading>hello</heading>
    <body>Just writing to say hello.</body></note>",
  "files":{},
  "form":{},
  "headers": {
    "Accept":"*/*",
    "Connection":"close",
    "Content-Length":"106",
    "Content-Type":"application/xml",
    "Host":"httpbin.org",
    "User-Agent":"curl/7.58.0"
  },
  "json":null,
  "origin":"10.1.1.1, 104.154.179.1",
  "url":"http://httpbin.org/post"
}

3: সুগঠিত XML/JSON

আপনি একটি JSON বা XML বার্তা পেলোড সুগঠিত হয়েছে তা নিশ্চিত করতে বার্তা যাচাইকরণ নীতি ব্যবহার করতে পারেন (যা যাচাইকরণের মতো নয়)। নীতি নিশ্চিত করে যে কাঠামো এবং বিষয়বস্তু স্বীকৃত মান পূরণ করে, যার মধ্যে রয়েছে:

  • একটি একক মূল উপাদান আছে
  • বিষয়বস্তুতে কোন অবৈধ অক্ষর নেই
  • বস্তু এবং ট্যাগ সঠিকভাবে নেস্ট করা হয়
  • শুরু এবং শেষ ট্যাগ মিলে যায়

একটি সুগঠিত XML বা JSON পেলোড পরীক্ষা করতে:

  1. আপনার প্রক্সি এন্ডপয়েন্টের প্রাক-প্রবাহে SOAP বার্তা যাচাইকরণ নীতি যোগ করুন।
  2. নীতি সংজ্ঞা থেকে <ResourceURL> , <SOAPMessage> , এবং <Element> উপাদানগুলি সরান।

    আপনার নীতি সংজ্ঞা নিম্নলিখিত মত হওয়া উচিত:

    <MessageValidation async="false" continueOnError="false"
        enabled="true" name="validateXMLRequest">
      <DisplayName>My JSON Checker</DisplayName>
      <Properties/>
      <Source>request</Source>
    </MessageValidation>
  3. আপনার API প্রক্সিতে একটি POST অনুরোধ পাঠান, যেমনটি নিম্নলিখিত উদাহরণটি দেখায়:
    curl -v -X POST -H 'Content-Type: application/json' http://my-test.apigee.net/v1/xsd-mock
      -d '{
    "note": {
      "to": "Fred Rogers",
      "from": "Nick Danger",
      "header": "Greetings from my neighborhood",
      "body": "Just writing to say hello."
      }
    }'

    লক্ষ্য করুন যে Content-type শিরোনাম "অ্যাপ্লিকেশন/json" এ সেট করা আছে।

    সুগঠিত হওয়ার জন্য একটি XML ফাইল পরীক্ষা করতে, XML বার্তা পেলোড হিসাবে ব্যবহার করুন এবং Content-type "অ্যাপ্লিকেশন/xml" এ সেট করুন।

আপনার একটি HTTP 200 প্রতিক্রিয়া পাওয়া উচিত। আপনি যখন একটি মেসেজ পেলোড পাঠান যাতে সুগঠিত XML বা JSON থাকে না, তখন আপনি একটি steps.messagevalidation.Failed . ব্যর্থ ত্রুটি পাবেন৷

শিশু উপাদান রেফারেন্স

এই বিভাগে <MessageValidation> এর চাইল্ড উপাদানগুলি বর্ণনা করা হয়েছে।

<DisplayName>

Use in addition to the name attribute to label the policy in the management UI proxy editor with a different, more natural-sounding name.

The <DisplayName> element is common to all policies.

Default Value n/a
Required? Optional. If you omit <DisplayName>, the value of the policy's name attribute is used
Type String
Parent Element <PolicyElement>
Child Elements None

The <DisplayName> element uses the following syntax:

Syntax

<PolicyElement>
  <DisplayName>policy_display_name</DisplayName>
  ...
</PolicyElement>

Example

<PolicyElement>
  <DisplayName>My Validation Policy</DisplayName>
</PolicyElement>

The <DisplayName> element has no attributes or child elements.

<Element>

যাচাই করার জন্য বার্তার উপাদানটি নির্দিষ্ট করে। এটি SOAP অনুরোধের খামে <Body> উপাদানের অধীনে প্রথম সন্তান।

ডিফল্ট মান নমুনা বস্তু
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <MessageValidation>
শিশু উপাদান কোনোটিই নয়

<Element> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিনট্যাক্স

...
  <Element namespace="element_namespace">element_to_validate</Element>
...

উদাহরণ 1

নিম্নলিখিত উদাহরণটি যাচাই করার জন্য একটি একক উপাদানকে সংজ্ঞায়িত করে:

...
<Element namespace="https://example.com/gateway">getID</Element>
...

উদাহরণ 2

আপনি একাধিক <Element> উপাদান যোগ করে যাচাই করার জন্য একাধিক উপাদান নির্দিষ্ট করতে পারেন:

...
<Element namespace="https://example.com/gateway">getID</Element>
<Element namespace="https://example.com/gateway">getDetails</Element>
...

<Element> উপাদানটির নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

বৈশিষ্ট্য ডিফল্ট প্রয়োজন? বর্ণনা
namespace "http://sample.com" ঐচ্ছিক যাচাই করার জন্য উপাদানটির নামস্থান সংজ্ঞায়িত করে।

<ResourceURL>

উৎস বার্তা যাচাই করতে ব্যবহার করা XSD স্কিমা বা WSDL সংজ্ঞা সনাক্ত করে।

ডিফল্ট মান wsdl:// display_name .wsdl
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <MessageValidation>
শিশু উপাদান কোনোটিই নয়

<ResourceURL> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিনট্যাক্স

...
  <ResourceURL>[wsdl|xsd]://validation_WSDL_or_XSD</ResourceURL>
...

উদাহরণ

একটি XML ফাইলের জন্য:

...
<ResourceURL>xsd://note-schema.xsd</ResourceURL>
...

একটি WSDL এর জন্য:

...
<ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL>
...

<ResourceURL> এর মান অবশ্যই আপনার API প্রক্সিতে একটি রিসোর্স ফাইল নির্দেশ করবে। এটি HTTP বা HTTPS এর উপর বাহ্যিক সংস্থানগুলি উল্লেখ করতে পারে না৷

আপনি যদি <ResourceURL> এর জন্য একটি মান নির্দিষ্ট না করেন, তাহলে বার্তাটি সুগঠিত JSON বা XML-এর জন্য চেক করা হয় যদি Content-type শিরোনাম যথাক্রমে "application/json" বা "application/xml" হয়।

<ResourceURL> উপাদানটির কোনো চাইল্ড উপাদান বা বৈশিষ্ট্য নেই।

যাচাইকরণের জন্য XSDs ব্যবহার করা

আপনি যে XML পেলোডটি মেসেজ ভ্যালিডেশন নীতির সাথে যাচাই করেন সেটি যদি অন্য স্কিমার উল্লেখ করে, তাহলে আপনাকে অবশ্যই অন্তর্ভুক্ত XSD ফাইলটিকে schemaLocation অ্যাট্রিবিউটে xsd সহ প্রিফিক্স করতে হবে।

নিম্নলিখিত উদাহরণ স্কিমা একাধিক XSDs গঠিত:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:include schemaLocation="xsd://note-schema.xsd"/>
  <xs:include schemaLocation="xsd://letter-schema.xsd"/>
  <xs:include schemaLocation="xsd://user-schema.xsd"/>
</xs:schema>

বৈধকরণের জন্য WSDL ব্যবহার করা

একটি WSDL অন্তত একটি স্কিমা সংজ্ঞায়িত করা আবশ্যক. যদি এটি অন্তত একটি স্কিমা উল্লেখ না করে, বার্তা যাচাইকরণ নীতি ব্যর্থ হয়।

একটি স্কিমার জন্য সর্বোচ্চ আমদানি গভীরতা হল 10৷ আপনি যদি নেস্টেড আমদানির সংখ্যা অতিক্রম করেন তবে বার্তা যাচাইকরণ নীতি ব্যর্থ হয়৷

<SOAPMessage>

SOAP সংস্করণ সংজ্ঞায়িত করে যার বিরুদ্ধে বার্তা যাচাইকরণ নীতি বৈধ করে।

ডিফল্ট মান n/a
প্রয়োজন? ঐচ্ছিক
টাইপ n/a
অভিভাবক উপাদান <MessageValidation>
শিশু উপাদান কোনোটিই নয়

<SOAPMessage> উপাদানটি নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিনট্যাক্স

...
  <SOAPMessage version="[ 1.1 | 1.2 | 1.1/1.2 ]"/>
...

উদাহরণ

...
<SOAPMessage version="1.1"/>
...

<SOAPMessage> উপাদানটির নিম্নলিখিত বৈশিষ্ট্য রয়েছে:

বৈশিষ্ট্য ডিফল্ট প্রয়োজন? বর্ণনা
version কোনোটিই নয় ঐচ্ছিক SOAP সংস্করণ যা এই নীতিটি SOAP বার্তাগুলিকে যাচাই করতে ব্যবহার করে৷

বৈধ মান হল:

  • "1.1"
  • "1.2"
  • "1.1/1.2"

আরও তথ্যের জন্য, SOAP/1.1 থেকে SOAP সংস্করণ 1.2 ইন 9 পয়েন্ট দেখুন।

<Source>

যাচাই করার জন্য উৎস বার্তা সনাক্ত করে। এই উপাদানটির মান হল সেই বার্তাটির নাম যা আপনি যাচাই করতে চান।

আপনি যদি <Source> সেট না করেন তবে এই নীতিটি ডিফল্ট "বার্তা" তে থাকে, যা সম্পূর্ণ অনুরোধ বার্তা (একটি অনুরোধ প্রবাহে) বা প্রতিক্রিয়া বার্তা (একটি প্রতিক্রিয়া প্রবাহে), যেকোন পেলোড সহ বোঝায়। আপনি অনুরোধ বা প্রতিক্রিয়া উল্লেখ করার জন্য এটিকে স্পষ্টভাবে "অনুরোধ" বা "প্রতিক্রিয়া" হিসাবে সেট করতে পারেন।

ডিফল্ট মান অনুরোধ
প্রয়োজন? ঐচ্ছিক
টাইপ স্ট্রিং
অভিভাবক উপাদান <MessageValidation>
শিশু উপাদান কোনোটিই নয়

<Source> উপাদান নিম্নলিখিত সিনট্যাক্স ব্যবহার করে:

সিনট্যাক্স

...
  <Source>message_to_validate</Source>
...

উদাহরণ

...
<Source>request</Source>
...

"বার্তা", "অনুরোধ", এবং "প্রতিক্রিয়া" ছাড়াও, আপনি আপনার প্রবাহের যেকোনো বার্তার নামের সাথে <Source> -এর মান সেট করতে পারেন। আপনি যদি এটি করেন তবে, এই নীতি কার্যকর করার আগে আপনাকে অবশ্যই আপনার প্রবাহে সেই নামের সাথে একটি কাস্টম বার্তা তৈরি করতে হবে৷ অন্যথায়, আপনি একটি ত্রুটি পাবেন.

যদি <Source> এর মান বার্তা প্রবাহে সমাধান করা না যায় বা একটি নন-মেসেজ প্রকারে সমাধান করা যায়, তাহলে নিম্নলিখিতগুলির মধ্যে একটি ঘটে:

  • যদি একটি শূন্য মান: এজ একটি steps.messagevalidation.SourceMessageNotAvailable ত্রুটি নিক্ষেপ করে।
  • যদি একটি নন-মেসেজ টাইপ: এজ একটি steps.messagevalidation.NonMessageVariable ত্রুটি নিক্ষেপ করে।

<Source> উপাদানটির কোনো বৈশিষ্ট্য বা শিশু উপাদান নেই।

ত্রুটি কোড

এজ নীতিগুলি থেকে ফিরে আসা ত্রুটিগুলি ত্রুটি কোড রেফারেন্সে বর্ণিত একটি সামঞ্জস্যপূর্ণ বিন্যাস অনুসরণ করে৷

এই বিভাগটি ফল্ট কোড এবং ত্রুটির বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ ঠিক করুন
steps.messagevalidation.SourceMessageNotAvailable 500

এই ত্রুটিটি ঘটে যদি নীতির <Source> উপাদানে নির্দিষ্ট করা একটি পরিবর্তনশীল হয়:

  • সুযোগের বাইরে (নির্দিষ্ট প্রবাহে উপলব্ধ নয় যেখানে নীতিটি কার্যকর করা হচ্ছে)
  • বা
  • সমাধান করা যাবে না (সংজ্ঞায়িত করা হয় না)
steps.messagevalidation.NonMessageVariable 500

এই ত্রুটিটি ঘটবে যদি SOAPMessageValidation পলিসিতে <Source> উপাদানটি একটি ভেরিয়েবলে সেট করা থাকে যা টাইপ বার্তার নয়।

মেসেজ টাইপ ভেরিয়েবল সম্পূর্ণ HTTP অনুরোধ এবং প্রতিক্রিয়া উপস্থাপন করে। বিল্ট-ইন এজ ফ্লো ভেরিয়েবল request , response এবং message টাইপ মেসেজ। বার্তা ভেরিয়েবল সম্পর্কে আরও জানতে, ভেরিয়েবল রেফারেন্স দেখুন।

steps.messagevalidation.Failed 500 এই ত্রুটিটি ঘটে যদি SOAPMessageValidation নীতি XSD স্কিমা বা WSDL সংজ্ঞার বিপরীতে ইনপুট বার্তা পেলোড যাচাই করতে ব্যর্থ হয়। পেলোড বার্তায় ত্রুটিপূর্ণ JSON বা XML থাকলে এটিও ঘটবে।

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
InvalidResourceType SOAPMessageValidation নীতিতে <ResourceURL> উপাদানটি একটি সম্পদের ধরণে সেট করা হয়েছে যা নীতি দ্বারা সমর্থিত নয়।
ResourceCompileFailed SOAPMessageValidation নীতির <ResourceURL> উপাদানে উল্লেখ করা রিসোর্স স্ক্রিপ্টে একটি ত্রুটি রয়েছে যা এটিকে কম্পাইল করা থেকে বাধা দেয়।
RootElementNameUnspecified SOAPMessageValidation নীতির <Element> এলিমেন্টে রুট এলিমেন্টের নাম নেই।
InvalidRootElementName SOAPMessageValidation নীতির <Element> উপাদানটিতে একটি মূল উপাদানের নাম রয়েছে যা বৈধ উপাদান নামকরণের জন্য XML নিয়ম মেনে চলে না।
,

এই বিভাগটি ফল্ট কোড এবং ত্রুটির বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড HTTP স্থিতি কারণ ঠিক করুন
steps.messagevalidation.SourceMessageNotAvailable 500

এই ত্রুটিটি ঘটে যদি নীতির <Source> উপাদানে নির্দিষ্ট করা একটি পরিবর্তনশীল হয়:

  • সুযোগের বাইরে (নির্দিষ্ট প্রবাহে উপলব্ধ নয় যেখানে নীতিটি কার্যকর করা হচ্ছে)
  • বা
  • সমাধান করা যাবে না (সংজ্ঞায়িত করা হয় না)
steps.messagevalidation.NonMessageVariable 500

এই ত্রুটিটি ঘটবে যদি SOAPMessageValidation পলিসিতে <Source> উপাদানটি একটি ভেরিয়েবলে সেট করা থাকে যা টাইপ বার্তার নয়।

মেসেজ টাইপ ভেরিয়েবল সম্পূর্ণ HTTP অনুরোধ এবং প্রতিক্রিয়া উপস্থাপন করে। বিল্ট-ইন এজ ফ্লো ভেরিয়েবল request , response এবং message টাইপ মেসেজ। বার্তা ভেরিয়েবল সম্পর্কে আরও জানতে, ভেরিয়েবল রেফারেন্স দেখুন।

steps.messagevalidation.Failed 500 এই ত্রুটিটি ঘটে যদি SOAPMessageValidation নীতি XSD স্কিমা বা WSDL সংজ্ঞার বিপরীতে ইনপুট বার্তা পেলোড যাচাই করতে ব্যর্থ হয়। পেলোড বার্তায় ত্রুটিপূর্ণ JSON বা XML থাকলে এটিও ঘটবে।

স্থাপনার ত্রুটি

আপনি যখন এই নীতি সম্বলিত একটি প্রক্সি স্থাপন করেন তখন এই ত্রুটিগুলি ঘটতে পারে৷

ত্রুটির নাম কারণ ঠিক করুন
InvalidResourceType SOAPMessageValidation নীতিতে <ResourceURL> উপাদানটি একটি সম্পদের ধরণে সেট করা হয়েছে যা নীতি দ্বারা সমর্থিত নয়।
ResourceCompileFailed SOAPMessageValidation নীতির <ResourceURL> উপাদানে উল্লেখ করা রিসোর্স স্ক্রিপ্টে একটি ত্রুটি রয়েছে যা এটিকে কম্পাইল করা থেকে বাধা দেয়।
RootElementNameUnspecified SOAPMessageValidation নীতির <Element> এলিমেন্টে রুট এলিমেন্টের নাম নেই।
InvalidRootElementName SOAPMessageValidation নীতির <Element> উপাদানটিতে একটি মূল উপাদানের নাম রয়েছে যা বৈধ উপাদান নামকরণের জন্য XML নিয়ম মেনে চলে না।

স্কিমাস

প্রতিটি নীতির ধরন একটি XML স্কিমা ( .xsd ) দ্বারা সংজ্ঞায়িত করা হয়। রেফারেন্সের জন্য, নীতি স্কিমা GitHub এ উপলব্ধ।

সম্পর্কিত বিষয়