عیب‌یابی خطای استقرار خط‌مشی «استخراج متغیرها»

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

NothingToExtract

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory. Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].

مثال پیام خطا

Error Saving Revision 2
ExtractVariables EV-XML-Age: at least one of URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload is mandatory.

نماگرفت نمونه

علت

اگر «خط‌مشی استخراج متغیرها» هیچ‌یک از عناصر URIPath، QueryParam، Header، FormParam، XMLPayload، یا JSONPayload را نداشته باشد، استقرار «پراکسی API» ناموفق خواهد بود، زیرا چیزی برای استخراج وجود ندارد.

همان‌طور که در پیام خطا نشان داده شده است، خط‌مشی «استخراج متغیرها» باید حداقل یکی از این عناصر را در خط‌مشی داشته باشد: URIPath، QueryParam، Header، FormParam، XMLPayload، یا JSONPayload.

تشخیص

خط‌مشی «استخراج متغیرها» را که در پیام خطا نام‌گذاری شده است بررسی کنید. اگر خط‌مشی حتی یکی از عناصر زیر را نداشته باشد: URIPath، QueryParam، Header، FormParam، XMLPayload، یا JSONPayload، آنگاه این دلیل خطا است. برای مثال، خط‌مشی «استخراج متغیرها» زیر هیچ‌یک از عناصر ذکرشده در بالا را ندارد:

<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
    <DisplayName>EV-XML-Age</DisplayName>
    <Properties/>
</ExtractVariables>

ازآنجایی‌که هیچ‌یک از عناصر الزامی در خط‌مشی «استخراج متغیرها» وجود ندارد، استقرار پراکسی API ناموفق است.

وضوح

مطمئن شوید که خط‌مشی «استخراج متغیرها» حداقل یکی از این عناصر اجباری را داشته باشد: URIPath، QueryParam، Header، FormParam، XMLPayload، JSONPayload. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
  <DisplayName>EV-XML-Age</DisplayName>
  <Properties/>
  <Source>request</Source>
  <XMLPayload>
    <Namespaces/>
      <Variable name="age" type="integer">
          <XPath>/age</XPath>
      </Variable>
  </XMLPayload>
</ExtractVariables>

NONEmptyPrefixMappedToEmptyURI

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: Non-empty prefix [prefix_name] cannot be mapped to empty uri.

مثال پیام خطا

Error Saving Revision 3
ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.

نماگرفت نمونه

علت

این خطا زمانی رخ می‌دهد که «خط‌مشی استخراج متغیرها» پیشوندی را در عنصر <Namespace> تحت عنصر <XMLPayload> تعریف کرده باشد، اما هیچ نشانی وب تعریف نشده باشد.

تشخیص

  1. خط‌مشی «استخراج متغیرها» را که خطا در آن رخ داده است و نام پیشوند را شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی EV-XML-Age و پیشوند apigee است:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. در فایل XML خط‌مشی «استخراج متغیرها» که ناموفق بوده است، بررسی کنید که نام پیشوندی که در عنصر <Namespace> زیر عنصر <XMLPayload> تنظیم شده است با نام پیشوندی که در پیام خطا شناسایی شده است مطابقت داشته باشد (مرحله ۱ در بالا). برای مثال، خط‌مشی زیر پیشوندی به‌نام apigee را در عنصر <Namespace> مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
        <DisplayName>EV-XML-Age</DisplayName>
        <Source clearPayload="false">request</Source>
        <XMLPayload stopPayloadProcessing="false">
          <Namespaces>
            <Namespace prefix="apigee"></Namespace>
            <Namespace prefix="gmail">http://mail.google.com</Namespace>
          </Namespaces>
        <Variable name="legName" type="string">
        <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    
  3. اعتبارسنجی کنید که آیا عنصر <Namespace> با پیشوند مشخص‌شده در مرحله #۲ دارای نشانی وب معتبر است یا نه. اگر نشانی وب وجود نداشته باشد، دلیل خطا همین است.

    در خط‌مشی «استخراج متغیرها» که در بالا نشان داده شده است، توجه کنید که هیچ شناسه یکنواخت منبعی مربوط به عنصر <Namespace> با پیشوند apigee وجود ندارد؛ بنابراین، این خطا را دریافت می‌کنید:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
    

وضوح

مطمئن شوید که همه <Namespace>عناصر تعریف‌شده با پیشوند دارای شناسه URI مربوطه در خط‌مشی «استخراج متغیرها» باشند. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
    <DisplayName>EV-XML-Age</DisplayName>
    <Source clearPayload="false">request</Source>
    <XMLPayload stopPayloadProcessing="false">
    <Namespaces>
        <Namespace prefix="apigee">http://www.apigee.com</Namespace>
        <Namespace prefix="gmail">http://mail.google.com</Namespace>
     </Namespaces>
    <Variable name="legName" type="string">
        <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
    </Variable>
    </XMLPayload>
</ExtractVariables>

DuplicatePrefix

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: Duplicate prefix [prefix_name].

مثال پیام خطا

Error Saving Revision 2
ExtractVariables EV-XML-Age: Duplicate prefix apigee.

نماگرفت نمونه

علت

این خطا زمانی رخ می‌دهد که «خط‌مشی استخراج متغیرها» پیشوند یکسانی را بیش‌از یک‌بار در عنصر <Namespace> تحت عنصر <XMLPayload> تعریف کرده باشد.

برای مثال، این خطا رخ می‌دهد زیرا پیشوند apigee دوبار تعریف شده است، همان‌طور که در زیر نشان داده شده است:

<Namespace prefix="apigee">http://www.apigee.com</Namespace>
<Namespace prefix="apigee">http://www.apigee.com</Namespace>

تشخیص

  1. خط‌مشی «استخراج متغیرها» را که خطا در آن رخ داده است و نام پیشوند را شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی EV-XML-Age و پیشوند apigee است:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. در فایل XML خط‌مشی «استخراج متغیرها» که ناموفق بوده است، بررسی کنید که نام پیشوندی که در عنصر <Namespace> زیر عنصر <XMLPayload> تنظیم شده است با نام پیشوندی که در پیام خطا شناسایی شده است مطابقت داشته باشد (مرحله ۱ در بالا). برای مثال، خط‌مشی زیر پیشوندی به‌نام apigee را در عنصر <Namespace> مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
        <DisplayName>EV-XML-Age</DisplayName>
        <Source clearPayload="false">request</Source>
        <XMLPayload stopPayloadProcessing="false">
          <Namespaces>
              <Namespace prefix="gmail">http://mail.google.com</Namespace>
              <Namespace prefix="apigee">http://www.apigee.com</Namespace>
              <Namespace prefix="apigee">http://www.apigee.com</Namespace>
          </Namespaces>
          <Variable name="legName" type="string
              <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
          </Variable>
        </XMLPayload>
      </ExtractVariables>
    
  3. تعیین کنید که آیا عنصر <Namespace> با پیشوند مشخص، که در مرحله #۲ شناسایی شده است، بیش از یک بار تعریف شده است یا نه. اگر بیش از یک بار تعریف شده باشد، این دلیل خطا است.

    در خط‌مشی «استخراج متغیرها» که در بالا نشان داده شده است، توجه کنید که عنصر <Namespace> با پیشوند apigee دوبار تعریف شده است؛ بنابراین، این خطا را دریافت می‌کنید:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
    

وضوح

مطمئن شوید که فقط یک تعریف برای هر پیشوند در عناصر <Namespace> در خط‌مشی «استخراج متغیرها» وجود داشته باشد. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
    <DisplayName>EV-XML-Age</DisplayName>
    <Source clearPayload="false">request</Source>
    <XMLPayload stopPayloadProcessing="false">
      <Namespaces>
          <Namespace prefix="apigee">http://www.apigee.com</Namespace>
          <Namespace prefix="gmail">http://mail.google.com</Namespace>
      </Namespaces>
      <Variable name="legName" type="string">
          <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</Xpath>
      </Variable>
    </XMLPayload>
</ExtractVariables>

NoXPathsToEvaluate

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]:no xpaths to evaluate in variable name.

مثال پیام خطا

Error Saving Revision 4
ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.

نماگرفت نمونه

علت

اگر «خط‌مشی استخراج متغیرها» عنصر <XPath> را در عنصر <XMLPayload> نداشته باشد، استقرار پراکسی API با خطای نشان‌داده‌شده در بالا ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «استخراج متغیرها» ناموفق را از پیام خطا شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی Extract-Variables-1 است:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. در XML خط‌مشی «استخراج متغیرها» که ناموفق بوده است، بررسی کنید که آیا عنصر <XMLPayload> بدون عنصر فرزند <XPath> وجود دارد یا نه. اگر این‌طور است، این دلیل خطا است.

    برای مثال، در اینجا خط‌مشی «استخراج متغیرها» با عنصر <XMLPayload> آورده شده است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
        <XMLPayload stopPayloadProcessing="false">
            <Namespaces/>
            <Variable name="HostReachable" type="boolean">
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    چون عنصر <XPath> وجود ندارد، استقرار «پراکسی میانای برنامه‌سازی کاربردی» ناموفق است.

وضوح

مطمئن شوید خط‌مشی «استخراج متغیرها» عنصر <XPath> را در عنصر <XMLPayload> تعریف کرده باشد. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>apigee</VariablePrefix>
    <XMLPayload stopPayloadProcessing="false">
        <Namespaces/>
        <Variable name="HostReachable" type="boolean">
            <XPath>/isReachable</XPath>
        </Variable>
    </XMLPayload>
</ExtractVariables>

EmptyXPathExpression

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: XPath expression is empty in variable name.

مثال پیام خطا

Error Saving Revision 6
ExtractVariables Extract-Variables-1: XPath expression is empty in variable name.

نماگرفت نمونه

علت

اگر «خط‌مشی استخراج متغیرها» در عنصر <XMLPayload> عبارت <XPath> خالی داشته باشد، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «استخراج متغیرها» ناموفق را از پیام خطا شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی Extract-Variables-1 است:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. در زبان نشانه‌گذاری توسعه‌پذیر خط‌مشی «استخراج متغیرها» ناموفق، تعیین کنید که آیا عنصر <XMLPayload> با عنصر فرزند <XPath> خالی وجود دارد یا نه. اگر این‌طور است، این دلیل خطا است.

    برای مثال، در اینجا خط‌مشی «استخراج متغیرها» با عنصر <XMLPayload> آورده شده است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
        <XMLPayload stopPayloadProcessing="false">
            <Namespaces/>
            <Variable name="address" type="string">
                <XPath></XPath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    

    چون عنصر <XPath> خالی در عنصر <XMLPayload> وجود دارد، استقرار «پراکسی میانای برنامه‌سازی کاربردی» ناموفق است.

وضوح

مطمئن شوید خط‌مشی «استخراج متغیرها» عنصر <XPath> غیرخالی و معتبری را که در عنصر <XMLPayload> تعریف شده است داشته باشد. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>apigee</VariablePrefix>
    <XMLPayload stopPayloadProcessing="false">
        <Namespaces/>
        <Variable name="address" type="string">
            <XPath>/address</XPath>
        </Variable>
    </XMLPayload>
</ExtractVariables>

NoJSONPathsToEvaluate

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]:no jsonpaths to evaluate in variable name.

مثال پیام خطا

Error Saving Revision 6
ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.

نماگرفت نمونه

علت

اگر «خط‌مشی استخراج متغیرها» عنصر <JSONPath> را در عنصر <JSONPayload> نداشته باشد، استقرار پراکسی API با خطای نشان‌داده‌شده در بالا ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «استخراج متغیرها» ناموفق را از پیام خطا شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی Extract-Variables-1 است:

    ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
    
  2. در XML خط‌مشی «استخراج متغیرها» ناموفق، تعیین کنید که آیا عنصر <JSONPayload> بدون عنصر فرزند الزامی <JSONPath> وجود دارد یا نه. اگر این‌طور است، این دلیل خطا است.

    برای مثال، در اینجا خط‌مشی «استخراج متغیرها» را می‌بینید که <JSONPayload> عنصر دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <JSONPayload>
            <Variable name="title">
            </Variable>
        </JSONPayload>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>apigee</VariablePrefix>
    </ExtractVariables>
    

    چون عنصر فرزند <JSONPath> زیر عنصر <JSONPayload> تعریف نشده است، استقرار «پراکسی API» ناموفق است.

وضوح

مطمئن شوید خط‌مشی «استخراج متغیرها» عنصر <JSONPath> را در عنصر <JSONPayload> تعریف کرده باشد. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <JSONPayload>
        <Variable name="title">
            <JSONPath>$.book.title</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>

EmptyJSONPathExpression

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
ExtractVariables [policy_name]: JSONPath expression is empty in variable name.

مثال پیام خطا

Error Saving Revision 6
ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.

نماگرفت نمونه

علت

اگر «خط‌مشی استخراج متغیرها» در عنصر <JSONPayload> عبارت <JSONPath> خالی داشته باشد، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «استخراج متغیرها» ناموفق را از پیام خطا شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی Extract-Variables-1 است:

    ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
    
  2. در فایل XML خط‌مشی «استخراج متغیرها» ناموفق، بررسی کنید که آیا عنصر <JSONPayload> با عنصر فرزند <JSONPath> خالی وجود دارد یا نه. اگر این‌طور است، این دلیل خطا است.

    برای مثال، در اینجا خط‌مشی «استخراج متغیرها» را می‌بینید که عنصر <JSONPayload> دارد:

        <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
            <DisplayName>Extract Variables-1</DisplayName>
            <Properties/>
            <JSONPayload>
                <Variable name="account_number" type="integer">
                    <JSONPath></JSONPath>
                </Variable>
            </JSONPayload>
            <Source clearPayload="false">request</Source>
            <VariablePrefix>apigee</VariablePrefix>
        </ExtractVariables>
    

    چون عنصر <JSONPath> خالی در عنصر <JSONPayload> وجود دارد، استقرار «پراکسی میانای برنامه‌سازی کاربردی» ناموفق است.

وضوح

مطمئن شوید خط‌مشی «استخراج متغیرها» عنصر <JSONPath> غیرخالی و معتبری را که در عنصر <JSONPayload> تعریف شده است داشته باشد. برای مثال:

<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <JSONPayload>
        <Variable name="account_number" type="integer">
           <JSONPath>$.account.number</JSONPath>
        </Variable>
    </JSONPayload>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>apigee</VariablePrefix>
</ExtractVariables>

MissingName

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
Error occurred while validation of bean [policy_name].xml Reason: - Required attribute name is missing in [element_name]

مثال پیام خطا

Error Saving Revision 6
Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable

نماگرفت نمونه

علت

اگر «خط‌مشی استخراج متغیرها» مشخصه name را در هیچ‌یک از عناصر خط‌مشی مثل QueryParam، Header، FormParam، یا Variable نداشته باشد، درحالی‌که این مشخصه الزامی است، استقرار پراکسی API ناموفق خواهد بود.

برای مثال، اگر مشخصه name در عنصر Variable وجود نداشته باشد، این خطا رخ می‌دهد.

تشخیص

  1. نام خط‌مشی «استخراج متغیرها» را که خطا در آن رخ داده است و عنصری را که مشخصه name در آن وجود ندارد شناسایی کنید. می‌توانید این موارد را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی Extract-Variables-1 و نام عنصر Variable است:

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. در «زبان نشانه‌گذاری توسعه‌پذیر» خط‌مشی «استخراج متغیرها» ناموفق، بررسی کنید که همه عناصر با نام تعیین‌شده از مرحله ۱ در بالا دارای مشخصه name باشند. اگر عنصری وجود داشته باشد که مشخصه نام آن موجود نباشد، آن عنصر دلیل خطا است.

    برای مثال، خط‌مشی «استخراج متغیرها» زیر عنصر <Variable> را تعریف کرده است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Variable type="boolean">
            <Pattern>{isAccountActive}</Pattern>
        </Variable>
    </ExtractVariables>
    

    توجه داشته باشید که مشخصه name در عنصر Variable وجود ندارد، بنابراین استقرار «پراکسی API» ناموفق است.

وضوح

مطمئن شوید «خط‌مشی استخراج متغیرها» برای عناصر QueryParam، Header، FormParam، یا Variable حاوی مشخصه name الزامی باشد. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <Variable name="account_active" type="boolean">
        <Pattern>{isAccountActive}</Pattern>
    </Variable>
</ExtractVariables>

PatternWithoutVariable

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Saving Revision [revision_number]
Pattern [pattern] should have at least one variable in ExtractVariables stepDefinition [policy_name]

مثال پیام خطا

Error Saving Revision 7
Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.

نماگرفت نمونه

علت

اگر «خط‌مشی استخراج متغیرها» متغیری را در عنصر <Pattern> مشخص نکرده باشد، استقرار پراکسی API ناموفق خواهد بود. عنصر <Pattern> به نام متغیری نیاز دارد که داده‌های استخراج‌شده در آن ذخیره شود.

تشخیص

  1. نام خط‌مشی «استخراج متغیرها» را که خطا در آن رخ داده است و الگویی را که «متغیر» برای آن وجود ندارد شناسایی کنید. می‌توانید این موارد را از پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی Extract-Variables-1 و نام عنصر /a/b است:

    Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
    
  2. در XML خط‌مشی «استخراج متغیرها» ناموفق، تأیید کنید که الگوی تنظیم‌شده در عنصر <Pattern> با الگوی شناسایی‌شده در پیام خطا مطابقت داشته باشد (مرحله ۱ در بالا). برای مثال، خط‌مشی زیر الگوی /a/b را مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    برای مثال، در اینجا خط‌مشی «استخراج متغیرها» را می‌بینید که سه عنصر <Pattern> دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractVariables-1">
       <Source>request</Source>
       <URIPath>
          <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
          <Pattern ignoreCase="true">/a/b/</Pattern>
          <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
       </URIPath>
       <VariablePrefix>urirequest</VariablePrefix>
    </ExtractVariables>
    
  3. بررسی کنید آیا عنصر <Pattern> شناسایی‌شده در مرحله ۲ متغیر ندارد. متغیرها باید در آکولاد قرار بگیرند. اگر الگو متغیر نداشته باشد، این دلیل خطا است.

    عنصر <Pattern> با الگوی /a/b متغیر ندارد؛ بنابراین، استقرار «پراکسی میانای برنامه‌نویسی کاربردی» ناموفق است

    <Pattern ignoreCase="true">/a/b/</Pattern>
    
    

وضوح

مطمئن شوید که همه عناصر <Pattern> شامل متغیر (نامی که در آکولاد قرار گرفته است) باشند. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-1">
   <Source>request</Source>
   <URIPath>
      <Pattern ignoreCase="true">/a/{pathSeg}</Pattern>
      <Pattern ignoreCase="true">/a/b/{pathSeg}</Pattern>
      <Pattern ignoreCase="true">/a/b/c/{pathSeg}</Pattern>
   </URIPath>
   <VariablePrefix>urirequest</VariablePrefix>
</ExtractVariables>

CannotBeConvertedToNodeset

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Deploying Revision [revision_number]
ExtractVariables [policy_name]: Result of xpath [policy_name] cannot be converted to nodeset. Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].

مثال پیام خطا

Error Deploying Revision 4 to test
ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.

نماگرفت نمونه

علت

اگر «خط‌مشی استخراج متغیرها» عبارت <XPath> داشته باشد که در آن نوع <Variable> به‌عنوان nodeset تعریف شده باشد، اما عبارت نتواند به nodeset تبدیل شود، استقرار پراکسی API ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «استخراج متغیرها» را که خطا در آن رخ داده است و XPath را که نمی‌تواند به مجموعه گره تبدیل شود شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی Extract-Variables-1 و XPath 123 است.

    ExtractVariables Extract-Variables-1: Result of xpath 123 cannot be converted to nodeset. Context Revision:4;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
    
  2. در XML خط‌مشی «استخراج متغیرها» ناموفق، تأیید کنید که XPath تنظیم‌شده در عنصر <XPath> با XPath شناسایی‌شده در پیام خطا (مرحله ۱ در بالا) مطابقت داشته باشد. برای مثال، خط‌مشی زیر را به‌عنوان 123 مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
        <DisplayName>Extract Variables-1</DisplayName>
        <Properties/>
        <Source clearPayload="false">request</Source>
        <VariablePrefix>visitor</VariablePrefix>
        <XMLPayload stopPayloadProcessing="false">
            <Namespaces/>
            <Variable name="age" type="nodeset">
                <XPath>123</XPath>
            </Variable>
        </XMLPayload>
    </ExtractVariables>
    
  3. نوع عنصر <Variable> مربوط به <XPath> شناسایی‌شده در مرحله ۲ بالا را بررسی کنید. اگر نوع <Variable> nodeset باشد، دلیل خطا همین است.

    توجه داشته باشید که عبارت <XPath> در خط‌مشی نمونه «استخراج متغیرها» 123 است.

    <XPath>123</XPath>
    

    عبارت 123 نمی‌تواند به مجموعه گره تبدیل شود. بنابراین، استقرار «پراکسی میانای برنامه‌سازی کاربردی» ناموفق است.

وضوح

مطمئن شوید که اگر نوع <Variable> به‌عنوان مجموعه گره تعریف شده است، <XPath> عبارت‌های استفاده‌شده در خط‌مشی «استخراج متغیرها» بتواند به مجموعه گره تبدیل شود. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="Extract-Variables-1">
    <DisplayName>Extract Variables-1</DisplayName>
    <Properties/>
    <Source clearPayload="false">request</Source>
    <VariablePrefix>visitor</VariablePrefix>
    <XMLPayload stopPayloadProcessing="false">
        <Namespaces/>
        <Variable name="age" type="nodeset">
            <XPath>/visitor/age</XPath>
        </Variable>
    </XMLPayload>
</ExtractVariables>

InvalidPattern

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Deploying Revision [revision_number]
Pattern [pattern] is invalid in ExtractVariables stepDefinition [policy_name]

مثال پیام خطا

Error Deploying Revision 18 to test
Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.

نماگرفت نمونه

علت

اگر تعریف عنصر <Pattern> در هریک از عناصر مثل URIPath، QueryParam، Header، FormParam، XMLPayload، یا JSONPayload در «خط‌مشی استخراج متغیرها» نامعتبر باشد، استقرار میانای برنامه‌سازی کاربردی API ناموفق خواهد بود.

تشخیص

  1. خط‌مشی «استخراج متغیرها» را که ناموفق بوده است از پیام خطا شناسایی کنید. برای مثال، در خطای زیر، نام خط‌مشی Extract-Variables-2 است:

    Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
    
  2. در فایل XML خط‌مشی «استخراج متغیرها» که ناموفق بوده است، بررسی کنید که آیا هریک از این عناصر وجود دارد و عنصر <Pattern> را اضافه کنید.: ‫URIPath،‏ QueryParam،‏ Header،‏ FormParam،‏ XMLPayload، یا JSONPayload.

    برای مثال، در اینجا خط‌مشی «استخراج متغیرها» با عنصر <Pattern> در عنصر <QueryParam> آورده شده است:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables name="ExtractVariables-2">
        <DisplayName>ExtractVariables-2</DisplayName>
        <Source>request</Source>
        <QueryParam name="code">
            <Pattern ignoreCase="true">{*}</Pattern>
        </QueryParam>
        <VariablePrefix>queryinfo</VariablePrefix>
    </ExtractVariables>
    
  3. تعریف هریک از <Pattern> عنصر را بررسی کنید. اگر عنصر <Pattern> با تعریف نامعتبر وجود داشته باشد، آن عنصر دلیل خطا است.

    در خط‌مشی «استخراج متغیرها» که در بالا نشان داده شده است، توجه کنید که تعریف <Pattern> در عنصر <QueryParam> نامعتبر است؛ بنابراین، استقرار «پراکسی API» ناموفق است. همچنین ببینید درباره مطابقت و ایجاد متغیر

    <Pattern ignoreCase="true">{*}</Pattern>
    
    

وضوح

مطمئن شوید تعریف عنصر <Pattern> در عناصر URIPath، QueryParam، Header، FormParam، XMLPayload، یا JSONPayload در خط‌مشی «استخراج متغیرها» معتبر باشد. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables name="ExtractVariables-2">
    <DisplayName>Extract a value from a query parameter</DisplayName>
    <Source>request</Source>
    <QueryParam name="code">
        <Pattern ignoreCase="true">{code}</Pattern>
    </QueryParam>
    <VariablePrefix>queryinfo</VariablePrefix>
</ExtractVariables>

همچنین درباره مطابقت و ایجاد متغیر را ببینید

XPathCompilationFailed

پیام خطا

استقرار پراکسی API ازطریق «واسط کاربر Edge» یا «میانای برنامه‌سازی کاربردی مدیریت Edge» با این پیام خطا ناموفق است:

Error Deploying Revision [revision_number]
ExtractVariables [policy_name]: Failed to compile xpath [xpath] Context Revision:[revision_number]; APIProxy:[proxy_name]; Organization:[org_name]; Environment:[env_name].

مثال پیام خطا

Error Deploying Revision 1 to test
ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.

نماگرفت نمونه

علت

اگر پیشوند یا مقدار استفاده‌شده در عنصر <XPath> بخشی از هیچ‌یک از فضای نام‌های اعلام‌شده در «خط‌مشی استخراج متغیرها» نباشد، استقرار پراکسی API ناموفق خواهد بود.

می‌توانید اطلاعات بیشتری درباره فضای نام، XPath، و پیشوند در فضاهای نام XML و نحوه تأثیر آن‌ها بر XPath و XSLT پیدا کنید.

تشخیص

  1. خط‌مشی «استخراج متغیرها» را که خطا در آن رخ داده است و XPath را که نمی‌تواند تدوین شود شناسایی کنید. می‌توانید هر دو مورد را در پیام خطا پیدا کنید. برای مثال، در خطای زیر، نام خط‌مشی EV-XML-Age و xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name است.

    ExtractVariables EV-XML-Age: Failed to compile xpath /apigee:Directions/apigee:route/apigee:leg/apigee:name. Context Revision:1;APIProxy:EV-XML;Organization:aprabhashankar-eval;Environment:test.
    
  2. در XML خط‌مشی «استخراج متغیرها» ناموفق، تأیید کنید که XPath تنظیم‌شده در عنصر <XPath> با XPath شناسایی‌شده در پیام خطا (مرحله ۱ در بالا) مطابقت داشته باشد. برای مثال، خط‌مشی زیر را به‌عنوان /apigee:Directions/apigee:route/apigee:leg/apigee:name مشخص می‌کند که با آنچه در پیام خطا است مطابقت دارد:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
      <DisplayName>EV-XML-Age</DisplayName>
      <Source clearPayload="false">request</Source>
      <XMLPayload stopPayloadProcessing="false">
        <Namespaces>
            <Namespace prefix="gmail">http://mail.google.com</Namespace>
        </Namespaces>
        <Variable name="legName" type="string">
        <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
            </Variable>
      </XMLPayload>
    </ExtractVariables>
    
  3. عناصر <Namespaces> و <XPath> را در خط‌مشی «استخراج متغیرها» بررسی کنید. اگر <XPath> مشخص‌شده در پیام خطا از پیشوند یا مقداری استفاده می‌کند که بخشی از فضای نام‌های اعلام‌شده در خط‌مشی «استخراج متغیرها» نیست، این دلیل خطا است.

    توجه داشته باشید که <XPath> خاص از پیشوند apigee در خط‌مشی نمونه «استخراج متغیرها» استفاده می‌کند.

    <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
    

    بااین‌حال، پیشوند apigee در هیچ‌یک از عناصر <Namespace> تعریف نشده است؛ بنابراین، گردآوری <XPath> ناموفق است و منجر به ناموفق بودن استقرار می‌شود.

وضوح

مطمئن شوید همه فضاهای نامی که در عناصر <XPath> استفاده می‌شوند در «خط‌مشی استخراج متغیرها» اعلام شده باشند. برای مثال:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ExtractVariables async="false" continueOnError="false" enabled="true" name="EV-XML-Age">
  <DisplayName>EV-XML-Age</DisplayName>
  <Source clearPayload="false">request</Source>
  <XMLPayload stopPayloadProcessing="false">
    <Namespaces>
        <Namespace prefix="apigee">http://www.apigee.com</Namespace>
        <Namespace prefix="gmail">http://mail.google.com</Namespace>
    </Namespaces>
    <Variable name="legName" type="string">
        <XPath>/apigee:Directions/apigee:route/apigee:leg/apigee:name</XPath>
    </Variable>
  </XMLPayload>
</ExtractVariables>