عیب یابی خطای زمان اجرا متغیرها را استخراج کنید

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

SourceMessageNotAvailable

کد خطا

steps.extractvariables.SourceMessageNotAvailable

بدنه پاسخ به خطا

{
  "fault": {
      "faultstring": "[variable_name] message is not available for ExtractVariable: [policy_name]",
      "detail": {
          "errorcode": "steps.extractvariables.SourceMessageNotAvailable"
      }
  }
}

علت

این خطا در صورتی رخ می دهد که متغیر پیام مشخص شده در عنصر <Source> خط مشی Extract Variables یکی باشد:

  • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
  • قابل حل نیست (تعریف نشده است)

به عنوان مثال، اگر خط مشی Extract Variables در جریان درخواست اجرا شود، این خطا رخ می دهد، اما عنصر <Source> روی متغیر response یا error تنظیم می شود که در جریان درخواست وجود ندارد.

تشخیص

  1. خط مشی Extract Variables را که در آن خطا رخ داده است و نام متغیری را که در دسترس نیست شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام سیاست ExtractVariables-1 و متغیر response است:

    "faultstring": "response message is not available for ExtractVariable: ExtractVariables-1"

  2. در XML خط مشی Extract Variables ناموفق، بررسی کنید که نام مجموعه متغیر در عنصر با نام متغیر شناسایی شده در رشته خطا مطابقت داشته باشد (مرحله شماره 1 در بالا). به عنوان مثال، سیاست Extract Variables زیر یک متغیر به نام response در عنصر مشخص می کند که با آنچه در رشته خطا است مطابقت دارد:

    <ExtractVariables name="ExtractVariables-1">
        <Source>response</Source>
        <URIPath>
            <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
        </URIPath>
        <VariablePrefix>urirequest</VariablePrefix>
    </ExtractVariables>
    
  3. تعیین کنید که آیا متغیر مورد استفاده در عنصر <Source> در جریانی که خط مشی Extract Variables در آن اجرا می شود، تعریف شده و موجود است یا خیر.

  4. اگر متغیر یکی از این موارد باشد:

    • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
    • قابل حل نیست (تعریف نشده است)

    پس این دلیل خطا است.

    به عنوان مثال، فرض کنید سیاست Extract Variables نشان داده شده در بالا در جریان درخواست اجرا می شود. به یاد بیاورید که متغیر response در عنصر <Source> سیاست Extract Variables استفاده می شود. متغیر response فقط در جریان پاسخ موجود است.

    از آنجایی که متغیر response در جریان درخواست وجود ندارد، کد خطا را دریافت می‌کنید: steps.extractvariables.SourceMessageNotAvailable .

قطعنامه

اطمینان حاصل کنید که مجموعه متغیر در عنصر <Source> خط مشی شکست خورده Extract Variables، تعریف شده است و در جریانی که سیاست اجرا می شود وجود دارد.

برای تصحیح نمونه سیاست Extract Variables نشان داده شده در بالا، می توانید عنصر <Source> را تغییر دهید تا از متغیر request همانطور که در جریان درخواست وجود دارد استفاده کنید:

<ExtractVariables name="ExtractVariables-1">
    <Source>request</Source>
    <URIPath>
        <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
    </URIPath>
    <VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>

SetVariableFailed

کد خطا

steps.extractvariables.SetVariableFailed

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "Failed to set variable [variable_name] value [variable_value] from ExtractVariables: [policy_name]",
        "detail": {
            "errorcode": "steps.extractvariables.SetVariableFailed"
        }
    }
}

علت

اگر خط مشی Extract Variables نتواند مقدار یک متغیر را تنظیم کند، این خطا رخ می دهد. به طور کلی این اتفاق می افتد اگر بخواهید مقادیری را به چندین متغیر اختصاص دهید که نام آنها با کلمات مشابه در قالب جدا شده از نقطه تو در تو آغاز می شود.

به عنوان مثال، فرض کنید یک مقدار به متغیر var.color ایجاد/تخصیص می دهید. در این حالت، color به عنوان یک گره شی اختصاص داده می شود. اگر سعی کنید مقداری را به متغیر دیگری var.color.next اختصاص دهید، شکست خواهد خورد زیرا color قبلاً تخصیص داده شده است و مجاز نیست متغیر دیگری را به آن اختصاص دهید.

تشخیص

  1. خط مشی Extract Variables را که در آن خطا رخ داده است و نام متغیری را که مقدار را نمی توان برای آن تنظیم کرد، شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام سیاست ExtractColors و متغیر var.color.next است:

    "faultstring": "Failed to set variable var.color.next value red from ExtractVariables: ExtractColors"

  2. در XML خط مشی Extract Variables ناموفق، بررسی کنید که نام متغیر با نام متغیر شناسایی شده در رشته خطا مطابقت داشته باشد (مرحله شماره 1 در بالا). به عنوان مثال، خط مشی زیر تلاش می کند تا یک مقدار از یک پارامتر درخواست درخواست به متغیری به نام var.color.next (مقداری که رشته خطا ظاهر می شود) اختصاص دهد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractColors">
        <DisplayName>ExtractColors</DisplayName>
        <Source>request</Source>
        <QueryParam name="color">
            <Pattern ignoreCase="true">{color}</Pattern>
        </QueryParam>
        <QueryParam name="nextcolor">
            <Pattern ignoreCase="true">{color.next}</Pattern>
        </QueryParam>
        <VariablePrefix>var</VariablePrefix>
    </ExtractVariables>
    
  3. تمام نام متغیرهای مورد استفاده در سیاست شکست خورده Extract Variables را بررسی کنید. اگر مقداری را به متغیر دیگری که نام آن با نام متغیر مشخص شده در رشته خطا شروع می‌شود، نسبت داده‌اید (مرحله شماره 1 در بالا)، آنگاه این دلیل خطا است.

    در مثال سیاست Extract Variables نشان داده شده در بالا، توجه کنید که:

    • مقدار پارامتر query با نام color ابتدا به متغیر var.color اختصاص داده می شود var.color ( توجه: var پیشوند همه متغیرهایی است که در عنصر <VariablePrefix> تنظیم شده است)
    • در انتساب بعدی، مقدار پارامتر query nextcolor به متغیر دیگری var.color.next اختصاص داده می شود.
    • از آنجایی که var.color قبلا تخصیص داده شده است، خط مشی Extract Variables نمی تواند متغیر تودرتوی var.color.next را اختصاص دهد. بنابراین کد خطا را دریافت می کنید: steps.extractvariables.SetVariableFailed

قطعنامه

  1. اطمینان حاصل کنید که نام چندین متغیری ندارید که نام آنها با همان کلماتی که در قالب نقطه‌ای از هم جدا شده‌اند شروع شود.

    برای تصحیح خط مشی Extract Variables نشان داده شده در بالا، می توانید نام متغیر var.color.next را برای استفاده از نام متغیر var.nextcolor.

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractColors">
        <DisplayName>ExtractColors</DisplayName>
        <Source>request</Source>
        <QueryParam name="color">
            <Pattern ignoreCase="true">{color}</Pattern>
        </QueryParam>
        <QueryParam name="nextcolor">
            <Pattern ignoreCase="true">{nextcolor}</Pattern>
        </QueryParam>
        <VariablePrefix>var</VariablePrefix>
    </ExtractVariables>
    
    

اطلاعات بیشتر

برای جزئیات بیشتر به این پست انجمن مراجعه کنید.

نامعتبر JSONPath

کد خطا

steps.extractvariables.InvalidJSONPath

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "Invalid JSON path [path_name] in policy [policy_name].",
        "detail": {
            "errorcode": "steps.extractvariables.InvalidJSONPath"
        }
    }
}

علت

اگر از یک مسیر JSON نامعتبر در عنصر <JSONPath> خط مشی Extract Variables استفاده شود، این خطا رخ می دهد. به عنوان مثال، اگر یک بار JSON دارای Name شیء نباشد، اما شما Name به عنوان مسیر در خط مشی Extract Variables مشخص کنید، این خطا رخ می دهد.

تشخیص

  1. خط مشی Extract Variables را که در آن خطا رخ داده و مسیر JSON نامعتبر شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام خط مشی ExtractJSONVariables و مسیر JSON نامعتبر $.Name است:

    "faultstring": "Invalid JSON path $.Name in policy ExtractJSONVariables."

  2. در XML خط مشی Extract Variables ناموفق، بررسی کنید که مسیر JSON تنظیم شده در عنصر <JSONPath> با مسیر مشخص شده در رشته خطا مطابقت داشته باشد (مرحله شماره 1 در بالا). به عنوان مثال، خط مشی Extract Variables زیر مسیر JSON $.Name را مشخص می کند که با آنچه در رشته خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractJSONVariables">
        <Source>response</Source>
        <JSONPayload>
            <Variable name="name" type="string">
                <JSONPath>$.Name</JSONPath>
            </Variable>
        </JSONPayload>
       <VariablePrefix>employee</VariablePrefix>
    </ExtractVariables>
    
  3. عنصر <Source> را بررسی کنید و تعیین کنید که از کدام JSON Payload می خواهید متغیر را استخراج کنید. به عنوان مثال، اگر عنصر <Source> روی request تنظیم شده باشد، این خط مشی در حال استخراج بار JSON از شی درخواست است. اگر روی response تنظیم شود، شی پاسخ خواهد بود.

    در مثال سیاست Extract Variables نشان داده شده در بالا، عنصر <Source> روی response تنظیم شده است، بنابراین متغیرها از بار JSON پاسخ استخراج می شوند.

    <Source>response</Source>

  4. بار مناسب JSON (که از مرحله 3 تعیین شده است) را بررسی کنید و بررسی کنید که آیا شیء مشخص شده در عنصر <JSONPath> را دارد یا خیر. اگر بار JSON آن شیء را نداشته باشد، دلیل این خطا است.

    به عنوان مثال، در نظر بگیرید که می‌خواهید متغیرها را از بار پاسخ JSON زیر استخراج کنید:

    {
      "firstName":"John",
      "lastName":"Doe",
      "city":"San Jose",
      "state":"CA"
    }
    

    از آنجایی که بار پاسخ JSON دارای شی Name نیست، خط مشی Extract Variables با خطای دریافت کد خطا: steps.extractvariables.InvalidJSONPath شکست می خورد.

قطعنامه

  1. اطمینان حاصل کنید که فقط اشیایی که بخشی از JSON Payload هستند که متغیرها از آن استخراج می شوند، در عنصر <JSONPath> خط مشی Extract Variables مشخص شده باشند.

    برای تصحیح مثال خط مشی Extract Variables نشان داده شده در بالا، می توانید عنصر <JSONPath> را تغییر دهید تا یکی از اشیاء موجود در نمونه پاسخ JSON Payload را مشخص کنید (به عنوان مثال، اشیاء firstName و lastName معتبر هستند):

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractJSONVariables">
        <Source>response</Source>
        <JSONPayload>
            <Variable name="name" type="string">
                <JSONPath>$.firstName</JSONPath>
            </Variable>
        </JSONPayload>
       <VariablePrefix>employee</VariablePrefix>
    </ExtractVariables>
    
    

اجرا ناموفق بود

کد خطا

steps.extractvariables.ExecutionFailed

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "Failed to execute the ExtractVariables: [policy_name]",
        "detail": {
            "errorcode": "steps.extractvariables.ExecutionFailed"
        }
    }
}

علل احتمالی

دلایل احتمالی این خطا عبارتند از:

علت توضیحات
محموله ورودی وجود ندارد محموله ورودی (JSON، XML) خالی است.
ورودی نامعتبر یا نادرست ورودی (JSON، XML، و غیره) که به خط‌مشی ارسال می‌شود، نامعتبر یا نادرست است.

علت: از دست رفتن بار ورودی

اگر قرار باشد خط مشی Extract Variables متغیرها را از یک بار JSON یا XML استخراج کند، اما محتوای (payload) متغیر مشخص شده در عنصر <Source> خالی باشد، این خطا رخ می دهد.

به عنوان مثال، اگر عنصر <Source> در خط‌مشی Extract Variables به‌عنوان request یا response تنظیم شده باشد و قرار باشد شامل یا JSON یا XML payload باشند، اما در صورتی که payload خالی باشد، خطا رخ می‌دهد.

تشخیص

  1. خط مشی Extract Variables را در جایی که خطا رخ داده است شناسایی کنید. شما می توانید این اطلاعات را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام خط مشی ExtractJSONVariables است:

    "faultstring": "Failed to execute the ExtractVariables: ExtractXMLVariables"

  2. عنصر <Source> را در Extract Variables XML خراب شده بررسی کنید و نوع ورودی که متغیرها از آن استخراج می شوند را تعیین کنید. به عنوان مثال، خط مشی Extract Variables زیر عنصر <Source> را روی response تنظیم کرده است و متغیرها را از بارگذاری XML استخراج می کند:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ExtractVariables name="ExtractXMLVariables" async="false" continueOnError="false" enabled="true">
        <XMLPayload>
            <Namespaces/>
            <Variable name="City" type="string">
                <XPath>/city</XPath>
            </Variable>
        </XMLPayload>
        <Source clearPayload="false">response</Source>
    </ExtractVariables>
    
    
  3. بررسی کنید که آیا ورودی که توسط خط مشی Extract Variables تجزیه می شود خالی است یا خیر. اگر ورودی خالی باشد، این دلیل خطا است.

    در مثال سیاست Extract Variables نشان داده شده در بالا، بار پاسخ (یعنی بدنه پاسخ) که توسط سرور باطن ارسال شده بود خالی بود.

    از آنجایی که بار پاسخ XML خالی است، کد خطا را دریافت می کنید:

    steps.extractvariables.ExecutionFailed

    اگر عنصر <Source> روی request تنظیم شده باشد، اما هیچ باری در درخواست پراکسی API ارسال نشود، این خطا ممکن است رخ دهد. به عنوان مثال:

    curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml"
    

    خط مشی Extract Variables تنها زمانی استخراج XML را انجام می دهد که سربرگ Content-Type پیام application/xml ، text/xml یا application/*+xml باشد. اگر می خواهید خط مشی Extract Variables یک بار درخواست XML را تجزیه کند، باید سرصفحه Content-Type را به صورت application/xml ، text/xml یا application/*+xml ارسال کنید.

قطعنامه

اطمینان حاصل کنید که ورودی ارسال شده به خط مشی Extract Variables معتبر و خالی نیست.

برای رفع مشکل با مثال Extract Variables Policy نشان داده شده در بالا، یک بار XML معتبر ارسال کنید. به عنوان مثال:

  1. یک فایل با نام city.xml با محتوای زیر ایجاد کنید:

    <city>Bengaluru</city>
    <area>Sanjaynagar</area>
    
  2. تماس API را با استفاده از دستور cURL به صورت زیر انجام دهید:

    curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/xml" -X POST -d @city.xml
    
    

علت: ورودی نامعتبر یا نادرست

اگر خط مشی Extract Variables ورودی نامعتبر یا بد شکل را تجزیه می کند، این خطا را دریافت می کنید.

به عنوان مثال، اگر JSON نامعتبر زیر به عنوان ورودی خط مشی Extract Variables ارائه شود، با این خطا مواجه خواهید شد.

[
    "args": ["name" : "amar" ]
]

تشخیص

  1. خط مشی Extract Variables را در جایی که خطا رخ داده است شناسایی کنید. شما می توانید این اطلاعات را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در faultstring زیر، نام خط مشی ExtractJSONVariables است:

    "faultstring": "Failed to execute the ExtractVariables: ExtractJSONVariables"

  2. عنصر <Source> را در Extract Variables XML خراب شده بررسی کنید و نوع ورودی که متغیرها از آن استخراج می شوند را تعیین کنید. به عنوان مثال، خط مشی Extract Variables زیر دارای عنصر <Source> برای request است و متغیرها را از بار JSON استخراج می کند:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
        <JSONPayload>
            <Variable name="Name" type="string">
                <JSONPath>$.args.name</JSONPath>
            </Variable>
        </JSONPayload>
        <Source clearPayload="false">request</Source>
    </ExtractVariables>
    
    
  3. بررسی کنید که آیا ورودی که توسط خط مشی Extract Variables تجزیه می شود معتبر است یا خیر. اگر ورودی نامعتبر یا نادرست باشد، دلیل این خطا است.

    در مثال خط مشی Extract Variables نشان داده شده در بالا، JSON نامعتبر زیر به خط مشی Extract Variables منتقل شد.

    [
        "args": ["name" : "amar" ]
    ]
    

    در اینجا نمونه فراخوانی API است که نحوه ارسال درخواست را نشان می دهد:

    curl -v "http://<org>-<env>.apigee.net/v1/testevexecutionfailed" -H "Content-Type: application/json" -X POST -d '[ "args" : ["name" : "amar" ]]'
    

    بار JSON ارسال شده به API نامعتبر است زیرا حاوی آرایه ای با براکت مربع ( [ ] ) است، بنابراین کد خطا را دریافت می کنید:

    steps.extractvariables.ExecutionFailed
    

    اگر عنصر <Source> روی response تنظیم شده باشد، اما بار پاسخ JSON نامعتبر یا نادرست باشد، این خطا ممکن است رخ دهد.

قطعنامه

اطمینان حاصل کنید که ورودی ارسال شده به خط مشی Extract Variables معتبر است و بدشکل نیست.

برای رفع مشکل با مثال خط مشی Extract Variables که در بالا توضیح داده شد، یک درخواست payload معتبر JSON را به شرح زیر ارسال کنید:

{
   "args":{
      "name":"amar"
   }
}

UnableToCast

کد خطا

steps.extractvariables.UnableToCast

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "Unable to cast value [value] as [type].",
        "detail": {
            "errorcode": "steps.extractvariables.UnableToCast"
        }
    }
}

علت

اگر خط مشی Extract Variables نتواند مقدار استخراج شده را به یک متغیر ارسال کند، این خطا رخ می دهد. معمولاً اگر بخواهید مقدار یک نوع داده را روی متغیری از نوع داده دیگر تنظیم کنید، این اتفاق می افتد.

به عنوان مثال، اگر سیاست Extract Variable سعی کند مقداری را که از یک متغیر String استخراج شده است به یک متغیر Integer تنظیم کند، این خطا را خواهید دید.

تشخیص

  1. نوع داده متغیری را که خط مشی Extract Variables سعی در ارسال به آن دارد و ناموفق است، شناسایی کنید. شما می توانید این اطلاعات را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در faultstring زیر، نوع شیء BOOLEAN است:

    "faultstring":"Unable to cast value 36.231 as BOOLEAN."

  2. خط مشی Extract Variables را مشخص کنید که در آن می خواهید مقدار را روی یک متغیر از نوع تعیین شده در مرحله #1 تنظیم کنید.

    به عنوان مثال، خط مشی Extract Variables زیر مقدار را از JSONPath $.latitude به متغیری از نوع boolean استخراج می کند که با آنچه در رشته خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true">
        <JSONPayload>
          <Variable name="latitude" type="boolean">
              <JSONPath>$.latitude</JSONPath>
          </Variable>
        </JSONPayload>
        <Source clearPayload="false">response</Source>
    </ExtractVariables>
    
    
  3. نوع داده مقدار استخراج شده را بررسی کنید. داده ها ممکن است به شکل هدر، مسیرهای URI، بارهای JSON/XML، پارامترهای فرم و پارامترهای پرس و جو باشند.

  4. بررسی کنید که آیا نوع داده تعیین شده در مرحله 3 و نوع داده متغیری که داده به آن اختصاص داده می شود (تعیین شده در مرحله 2) یکسان است یا خیر.

  5. اگر نوع داده متغیرهای مبدأ و مقصد یکسان نباشد، این دلیل خطا است.

    در مثال سیاست Extract Variables نشان داده شده در بالا، بارگذاری درخواست JSON را به صورت زیر در نظر بگیرید:

    {
     "latitude":36.2312
    }
    

    نوع داده مقدار استخراج شده از <JSONPath> ، '$.latitude' ، یک عدد صحیح است که به متغیری از نوع داده بولی اختصاص داده می شود.

    از آنجایی که نوع داده مقدار استخراج شده و نوع داده متغیری که مقدار به آن اختصاص داده می شود یکسان نیست، کد خطا را دریافت می کنید: steps.extractvariables.UnableToCast .

قطعنامه

اطمینان حاصل کنید که نوع داده مقدار استخراج شده و متغیری که محتوا به آن اختصاص داده می شود از یک نوع هستند.

برای تصحیح نمونه سیاست Extract Variables، باید نوع متغیر را به Integer تغییر دهید:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="EV-XML-Name" async="false" continueOnError="false" enabled="true">
    <JSONPayload>
        <Variable name="latitude" type="integer">
            <JSONPath>$.latitude</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">response</Source>
</ExtractVariables>

JsonPathParsing Failure

کد خطا

steps.extractvariables.JsonPathParsingFailure

بدنه پاسخ به خطا

{
    "fault": {
        "faultstring": "ExtractVariables [policy_name]: Json path parsing failed for flow variables [variable_name]",
        "detail": {
            "errorcode": "steps.extractvariables.JsonPathParsingFailure"
        }
    }
}

علت

این خطا زمانی رخ می دهد که خط مشی Extract Variables قادر به تجزیه یک مسیر JSON و استخراج داده ها از متغیر جریان مشخص شده در عنصر <Source> نباشد. به طور معمول این اتفاق می افتد اگر متغیر جریان مشخص شده در عنصر <Source> در جریان فعلی وجود نداشته باشد.

به عنوان مثال، اگر خط مشی Extract Variables در جریان پاسخ اجرا شود و انتظار می رود یک مسیر JSON را تجزیه کند، این خطا رخ می دهد، اما عنصر <Source> متغیر جریان request.content را مشخص می کند که در جریان پاسخ وجود ندارد.

تشخیص

  1. خط مشی Extract Variables را شناسایی کنید که در آن خطا رخ داده است و نام متغیر جریانی که داده ها از آن استخراج نمی شوند را شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر رشته خطای پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام سیاست ExtractVariables-1 و متغیر request.content است:

    "faultstring": "ExtractVariables ExtractJSONVariabes: Json path parsing failed for flow variables request.content"

  2. در XML خط مشی Extract Variables ناموفق، بررسی کنید که نام مجموعه متغیر در عنصر <Source> با نام متغیر شناسایی شده در رشته خطا مطابقت داشته باشد (مرحله شماره 1 در بالا). برای مثال، سیاست Extract Variables زیر متغیری به نام request.content را مشخص می‌کند که با آنچه در رشته خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
        <JSONPayload>
            <Variable name="Name" type="string">
                <JSONPath>$.args.name</JSONPath>
            </Variable>
        </JSONPayload>
        <Source clearPayload="false">request.content</Source>
    </ExtractVariables>
    
    
  3. اگر متغیر جریان استفاده شده در عنصر <Source> در جریانی که خط مشی Extract Variables در آن اجرا می شود، تعریف شده و در دسترس باشد، اعتبارسنجی کنید.

  4. اگر متغیر یکی از این موارد باشد:

    • خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
    • قابل حل نیست (تعریف نشده است)

    پس این دلیل خطا است.

    به عنوان مثال، فرض کنید سیاست ExtractVariables نشان داده شده در بالا قرار است در جریان پاسخ اجرا شود. به یاد بیاورید که متغیر جریان request.content در عنصر <Source> خط مشی Extract Variables استفاده می شود. متغیر جریان request.content فقط در جریان درخواست موجود است.

    از آنجایی که متغیر response در جریان درخواست وجود ندارد، کد خطا را دریافت می‌کنید: steps.extractvariables.JsonPathParsingFailure .

قطعنامه

اطمینان حاصل کنید که متغیر جریان استفاده شده در عنصر <Source> خط مشی Extract Variables در جریانی که خط مشی Extract Variables در آن اجرا می شود موجود باشد.

برای مثال، فرض کنید متغیری به نام response.content در جریان پاسخ وجود دارد و در واقع حاوی JSON است که می‌خواهید استخراج کنید. برای تصحیح خط مشی Extract Variables نشان داده شده در بالا، می توانید عنصر <Source> را به صورت زیر تغییر دهید:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractJSONVariables" async="false" continueOnError="false" enabled="true">
    <JSONPayload>
        <Variable name="Name" type="string">
            <JSONPath>$.args.name</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">response.content</Source>
</ExtractVariables>