شما در حال مشاهده اسناد 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
تنظیم می شود که در جریان درخواست وجود ندارد.
تشخیص
خط مشی Extract Variables را که در آن خطا رخ داده است و نام متغیری را که در دسترس نیست شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر
faultstring
پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام سیاستExtractVariables-1
و متغیرresponse
است:"faultstring": "response message is not available for ExtractVariable: ExtractVariables-1"
در 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>
تعیین کنید که آیا متغیر مورد استفاده در عنصر
<Source>
در جریانی که خط مشی Extract Variables در آن اجرا می شود، تعریف شده و موجود است یا خیر.اگر متغیر یکی از این موارد باشد:
- خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
- قابل حل نیست (تعریف نشده است)
پس این دلیل خطا است.
به عنوان مثال، فرض کنید سیاست 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
قبلاً تخصیص داده شده است و مجاز نیست متغیر دیگری را به آن اختصاص دهید.
تشخیص
خط مشی Extract Variables را که در آن خطا رخ داده است و نام متغیری را که مقدار را نمی توان برای آن تنظیم کرد، شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر
faultstring
پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام سیاستExtractColors
و متغیرvar.color.next
است:"faultstring": "Failed to set variable var.color.next value red from ExtractVariables: ExtractColors"
در 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>
تمام نام متغیرهای مورد استفاده در سیاست شکست خورده 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
- مقدار پارامتر query با نام
قطعنامه
اطمینان حاصل کنید که نام چندین متغیری ندارید که نام آنها با همان کلماتی که در قالب نقطهای از هم جدا شدهاند شروع شود.
برای تصحیح خط مشی 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 مشخص کنید، این خطا رخ می دهد.
تشخیص
خط مشی Extract Variables را که در آن خطا رخ داده و مسیر JSON نامعتبر شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر
faultstring
پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام خط مشیExtractJSONVariables
و مسیر JSON نامعتبر$.Name
است:"faultstring": "Invalid JSON path $.Name in policy ExtractJSONVariables."
در 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>
عنصر
<Source>
را بررسی کنید و تعیین کنید که از کدام JSON Payload می خواهید متغیر را استخراج کنید. به عنوان مثال، اگر عنصر<Source>
رویrequest
تنظیم شده باشد، این خط مشی در حال استخراج بار JSON از شی درخواست است. اگر رویresponse
تنظیم شود، شی پاسخ خواهد بود.در مثال سیاست Extract Variables نشان داده شده در بالا، عنصر
<Source>
رویresponse
تنظیم شده است، بنابراین متغیرها از بار JSON پاسخ استخراج می شوند.<Source>response</Source>
بار مناسب JSON (که از مرحله 3 تعیین شده است) را بررسی کنید و بررسی کنید که آیا شیء مشخص شده در عنصر
<JSONPath>
را دارد یا خیر. اگر بار JSON آن شیء را نداشته باشد، دلیل این خطا است.به عنوان مثال، در نظر بگیرید که میخواهید متغیرها را از بار پاسخ JSON زیر استخراج کنید:
{ "firstName":"John", "lastName":"Doe", "city":"San Jose", "state":"CA" }
از آنجایی که بار پاسخ JSON دارای شی
Name
نیست، خط مشی Extract Variables با خطای دریافت کد خطا:steps.extractvariables.InvalidJSONPath
شکست می خورد.
قطعنامه
اطمینان حاصل کنید که فقط اشیایی که بخشی از 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 خالی باشد، خطا رخ میدهد.
تشخیص
خط مشی Extract Variables را در جایی که خطا رخ داده است شناسایی کنید. شما می توانید این اطلاعات را در عنصر faultstring پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام خط مشی
ExtractJSONVariables
است:"faultstring": "Failed to execute the ExtractVariables: ExtractXMLVariables"
عنصر
<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>
بررسی کنید که آیا ورودی که توسط خط مشی 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 معتبر ارسال کنید. به عنوان مثال:
یک فایل با نام
city.xml
با محتوای زیر ایجاد کنید:<city>Bengaluru</city> <area>Sanjaynagar</area>
تماس 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" ]
]
تشخیص
خط مشی Extract Variables را در جایی که خطا رخ داده است شناسایی کنید. شما می توانید این اطلاعات را در عنصر
faultstring
پاسخ خطا پیدا کنید. به عنوان مثال، درfaultstring
زیر، نام خط مشیExtractJSONVariables
است:"faultstring": "Failed to execute the ExtractVariables: ExtractJSONVariables"
عنصر
<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>
بررسی کنید که آیا ورودی که توسط خط مشی 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 تنظیم کند، این خطا را خواهید دید.
تشخیص
نوع داده متغیری را که خط مشی Extract Variables سعی در ارسال به آن دارد و ناموفق است، شناسایی کنید. شما می توانید این اطلاعات را در عنصر
faultstring
پاسخ خطا پیدا کنید. به عنوان مثال، درfaultstring
زیر، نوع شیءBOOLEAN
است:"faultstring":"Unable to cast value 36.231 as BOOLEAN."
خط مشی 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>
نوع داده مقدار استخراج شده را بررسی کنید. داده ها ممکن است به شکل هدر، مسیرهای URI، بارهای JSON/XML، پارامترهای فرم و پارامترهای پرس و جو باشند.
بررسی کنید که آیا نوع داده تعیین شده در مرحله 3 و نوع داده متغیری که داده به آن اختصاص داده می شود (تعیین شده در مرحله 2) یکسان است یا خیر.
اگر نوع داده متغیرهای مبدأ و مقصد یکسان نباشد، این دلیل خطا است.
در مثال سیاست 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
را مشخص می کند که در جریان پاسخ وجود ندارد.
تشخیص
خط مشی Extract Variables را شناسایی کنید که در آن خطا رخ داده است و نام متغیر جریانی که داده ها از آن استخراج نمی شوند را شناسایی کنید. شما می توانید هر دوی این موارد را در عنصر رشته خطای پاسخ خطا پیدا کنید. به عنوان مثال، در رشته خطای زیر، نام سیاست
ExtractVariables-1
و متغیرrequest.content
است:"faultstring": "ExtractVariables ExtractJSONVariabes: Json path parsing failed for flow variables request.content"
در 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>
اگر متغیر جریان استفاده شده در عنصر
<Source>
در جریانی که خط مشی Extract Variables در آن اجرا می شود، تعریف شده و در دسترس باشد، اعتبارسنجی کنید.اگر متغیر یکی از این موارد باشد:
- خارج از محدوده (در جریان خاصی که سیاست در آن اجرا می شود موجود نیست) یا
- قابل حل نیست (تعریف نشده است)
پس این دلیل خطا است.
به عنوان مثال، فرض کنید سیاست 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>