Değişkenleri Ayıklama politikası dağıtım hatasıyla ilgili sorunları giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

NothingToExtract

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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].

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası'nda URIPath, QueryParam, Header, FormParam, XMLPayload veya JSONPayload öğelerinden hiçbiri yoksa ayıklanacak bir şey olmadığından API proxy'sinin dağıtımı başarısız olur.

Hata mesajında belirtildiği gibi, Değişkenleri Ayıkla politikası, politika içinde şu öğelerden en az birini içermelidir: URIPath, QueryParam, Header, FormParam, XMLPayload veya JSONPayload.

Teşhis

Hata mesajında belirtilen Değişkenleri Çıkarma politikasını inceleyin. Politikada şu öğelerden en az biri yoksa: URIPath, QueryParam, Header, FormParam, XMLPayload veya JSONPayload, hatanın nedeni budur. Örneğin, aşağıdaki Değişkenleri Çıkarma politikasında yukarıda bahsedilen öğelerden hiçbiri yoktur:

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

Değişkenleri Çıkarma politikasında zorunlu öğelerin hiçbiri bulunmadığından API proxy'sinin dağıtımı başarısız olur.

Çözünürlük

Değişkenleri Ayıkla politikasında şu zorunlu öğelerden en az birinin bulunduğundan emin olun: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Bu hata, Değişkenleri Ayıklama Politikası'nda <XMLPayload> öğesi altındaki <Namespace> öğesinde bir önek tanımlanmış ancak URI tanımlanmamışsa oluşur.

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkarma politikasını ve önek adını belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı EV-XML-Age , önek ise apigee'dir:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. Başarısız olan Extract Variables (Değişkenleri Çıkarma) politikası XML'sinde, <Namespace> öğesi altındaki <XMLPayload> öğesinde ayarlanan önekin adının, hata mesajında tanımlanan önek adıyla (yukarıdaki 1. adım) eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada <Namespace> öğesinde apigee adlı bir önek belirtiliyor. Bu önek , hata mesajındakiyle eşleşiyor:

    <?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. 2. adımda tanımlanan belirli önekle birlikte <Namespace> öğesinin geçerli bir URI'ye sahip olup olmadığını doğrulayın. URI eksikse hatanın nedeni budur.

    Yukarıda gösterilen örnek Değişkenleri Ayıkla politikasında, apigee önekine sahip <Namespace> öğesine karşılık gelen bir URI olmadığını unutmayın. Bu nedenle, şu hatayı alırsınız:

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

Çözünürlük

Önekle tanımlanan tüm <Namespace> öğelerin, Değişkenleri Çıkarma politikasında karşılık gelen bir URI'ye sahip olduğundan emin olun. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Bu hata, Değişkenleri Çıkarma Politikası'nda <XMLPayload> öğesi altındaki <Namespace> öğesinde aynı önek birden fazla kez tanımlanmışsa oluşur.

Örneğin, aşağıdaki gibi apigee öneki iki kez tanımlandığı için bu hata oluşur:

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

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkarma politikasını ve önek adını belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı EV-XML-Age, önek ise apigee'dir:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. Başarısız olan Extract Variables (Değişkenleri Çıkarma) politikası XML'sinde, <Namespace> öğesi altındaki <XMLPayload> öğesinde ayarlanan önekin adının, hata mesajında tanımlanan önek adıyla (yukarıdaki 1. adım) eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada <Namespace> öğesinde apigee adlı bir önek belirtiliyor. Bu önek , hata mesajındakiyle eşleşiyor:

    <?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. 2. adımda tanımlanan belirli öneke sahip <Namespace> öğesinin birden fazla kez tanımlanıp tanımlanmadığını belirleyin. Birden fazla kez tanımlanmışsa hatanın nedeni budur.

    Yukarıda gösterilen Extract Variables (Değişkenleri Çıkarma) politikasında, apigee önekine sahip <Namespace> öğesinin iki kez tanımlandığını fark edeceksiniz. Bu nedenle şu hatayı alırsınız:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
    

Çözünürlük

Değişkenleri Çıkar politikasındaki <Namespace> öğelerinde her önek için yalnızca bir tanım olduğundan emin olun. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası'nda <XPath> öğesi <XMLPayload> öğesi içinde yer almıyorsa API proxy'sinin dağıtımı yukarıda gösterilen hatayla başarısız olur.

Teşhis

  1. Hata mesajından başarısız olan Değişkenleri Çıkar politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Extract-Variables-1'dır:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Başarısız olan Değişkenleri Çıkarma politikası XML'sinde, <XPath> alt öğesi olmayan bir <XMLPayload> öğesi olup olmadığını kontrol edin. Bu durumda hatanın nedeni budur.

    Örneğin, <XMLPayload> öğesi içeren bir Değişkenleri Çıkar politikası aşağıda verilmiştir:

    <?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> öğesi bulunmadığı için API proxy'sinin dağıtımı başarısız oluyor.

Çözünürlük

Değişkenleri Ayıklama politikasının <XMLPayload> öğesi altında tanımlanmış bir <XPath> öğesi olduğundan emin olun. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası'nın <XPath> ifadesi <XMLPayload> öğesi içinde boşsa API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hata mesajından başarısız olan Değişkenleri Çıkar politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Extract-Variables-1'dır:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Başarısız olan Değişkenleri Çıkar politikası XML'sinde, boş bir <XPath> alt öğesi içeren bir <XMLPayload> öğesi olup olmadığını belirleyin. Bu durumda hatanın nedeni budur.

    Örneğin, <XMLPayload> öğesi içeren bir Değişkenleri Çıkar politikası aşağıda verilmiştir:

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

    <XMLPayload> öğesi içinde boş bir <XPath> öğesi olduğundan API proxy'sinin dağıtımı başarısız oluyor.

Çözünürlük

Değişkenleri Ayıkla politikasında, <XPath> öğesinin <XMLPayload> öğesi altında tanımlandığından ve boş olmadığından emin olun. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası'nda <JSONPath> öğesi <JSONPayload> öğesi içinde yer almıyorsa API proxy'sinin dağıtımı yukarıda gösterilen hatayla başarısız olur.

Teşhis

  1. Hata mesajından başarısız olan Değişkenleri Çıkar politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Extract-Variables-1'dır:

    ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
    
  2. Başarısız olan Değişkenleri Çıkar politikası XML'sinde, gerekli <JSONPath> alt öğesi olmayan bir <JSONPayload> öğesi olup olmadığını belirleyin. Bu durumda hatanın nedeni budur.

    Örneğin, <JSONPayload> öğesi içeren bir Değişkenleri Çıkar politikası aşağıda verilmiştir:

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

    <JSONPayload> öğesi altında <JSONPath> alt öğesi tanımlanmadığından API proxy'sinin dağıtımı başarısız oluyor.

Çözünürlük

Değişkenleri Çıkar politikasının <JSONPath> öğesi altında tanımlanmış bir <JSONPayload> öğesi olduğundan emin olun. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası'nın <JSONPath> ifadesi <JSONPayload> öğesi içinde boşsa API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hata mesajından başarısız olan Değişkenleri Çıkar politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Extract-Variables-1'dır:

    ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
    
  2. Başarısız olan Extract Variables (Değişkenleri Çıkar) politikası XML'sinde, boş bir <JSONPath> alt öğesi içeren bir <JSONPayload> öğesi olup olmadığını doğrulayın. Bu durumda hatanın nedeni budur.

    Örneğin, <JSONPayload> öğesi içeren bir Değişkenleri Çıkar politikası aşağıda verilmiştir:

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

    <JSONPayload> öğesi içinde boş bir <JSONPath> öğesi olduğundan API proxy'sinin dağıtımı başarısız oluyor.

Çözünürlük

Değişkenleri Ayıkla politikasında, <JSONPath> öğesinin <JSONPayload> öğesi altında tanımlandığından ve boş olmadığından emin olun. Örneğin:

<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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası, name özelliğini QueryParam, Header, FormParam veya Variable gibi politika öğelerinde gerekli olduğu yerlerde içermiyorsa API proxy'sinin dağıtımı başarısız olur.

Örneğin, Variable öğesinde name özelliği eksikse bu hata oluşur.

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkar politikasının adını ve name özelliğinin eksik olduğu öğeyi belirleyin. Bu öğeleri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı Extract-Variables-1, öğe adı ise Variable'dir:

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. Başarısız olan Değişkenleri Çıkarma politikası XML'sinde, yukarıdaki 1. adımda belirlenen ada sahip tüm öğelerin name özelliğine sahip olup olmadığını kontrol edin. Ad özelliğinin eksik olduğu bir öğe varsa hatanın nedeni budur.

    Örneğin, aşağıdaki Değişkenleri Çıkarma politikasında <Variable> öğesi tanımlanmıştır:

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

    Variable öğesinde name özelliğinin eksik olduğunu fark edin. Bu nedenle, API proxy'sinin dağıtımı başarısız olur.

Çözünürlük

Değişkenleri Ayıklama Politikası'nın QueryParam, Header, FormParam veya Variable öğeleri için gerekli name özelliğini içerdiğinden emin olun. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası'nda <Pattern> öğesi içinde belirtilen bir değişken yoksa API proxy'sinin dağıtımı başarısız olur. <Pattern> öğesi, çıkarılan verilerin depolanacağı değişkenin adını gerektirir.

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkar politikası adını ve değişkenin eksik olduğu kalıbı belirleyin. Bu öğeleri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı Extract-Variables-1, öğe adı ise /a/b'dir:

    Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
    
  2. Başarısız olan Extract Variables politikası XML'sinde, <Pattern> öğesinde ayarlanan kalıbın hata mesajında tanımlanan kalıpla (yukarıdaki 1. adım) eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada hata mesajındakiyle eşleşen bir /a/b kalıbı belirtiliyor:

    Örneğin, üç <Pattern> öğesi içeren bir Değişkenleri Çıkar politikası aşağıda verilmiştir:

    <?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. 2. adımda tanımlanan <Pattern> öğesinin değişkeni olup olmadığını kontrol edin. Değişkenler küme parantezleri içine alınmalıdır. Desende değişken yoksa hatanın nedeni budur.

    /a/b kalıbına sahip <Pattern> öğesi değişken içermediğinden API proxy'sinin dağıtımı başarısız oluyor.

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

Çözünürlük

Tüm <Pattern> öğelerinin bir değişken (küme parantezleri içine alınmış bir ad) içerdiğinden emin olun. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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].

Örnek hata mesajı

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.

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası'nda <Variable> türünün nodeset olarak tanımlandığı ancak ifadenin düğüm kümesine dönüştürülemediği bir <XPath> ifadesi varsa API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkar politikasını ve düğüm kümesine dönüştürülemeyen XPath'i belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı Extract-Variables-1 , XPath ise 123'dir.

    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. Başarısız olan Extract Variables politikası XML'sinde, <XPath> öğesinde ayarlanan XPath'in hata mesajında tanımlanan XPath ile eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politikada 123 olarak belirtilmiştir. Bu, hata mesajındakiyle eşleşir:

    <?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. Yukarıdaki 2. adımda tanımlanan <XPath> öğesine karşılık gelen <Variable> öğesinin türünü inceleyin. <Variable> türü nodeset ise hatanın nedeni budur.

    Değişkenleri Çıkarma politikası örneğinde <XPath> ifadesinin 123 olduğunu unutmayın.

    <XPath>123</XPath>
    

    123 ifadesi düğüm kümesine dönüştürülemiyor. Bu nedenle, API proxy'sinin dağıtımı başarısız olur.

Çözünürlük

<Variable> türü düğüm kümesi olarak tanımlanmışsa Değişkenleri Çıkar politikası içinde kullanılan <XPath> ifadelerinin düğüm kümesine dönüştürülebildiğinden emin olun. Örneğin:

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

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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

Örnek hata mesajı

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

Örnek ekran görüntüsü

Neden

Değişkenleri Ayıklama Politikası'ndaki URIPath, QueryParam, Header, FormParam, XMLPayload veya JSONPayload gibi öğelerin herhangi birinde <Pattern> öğe tanımı geçersizse API proxy'sinin dağıtımı başarısız olur.

Teşhis

  1. Hata mesajından başarısız olan Değişkenleri Çıkar politikasını belirleyin. Örneğin, aşağıdaki hatada politika adı Extract-Variables-2'dır:

    Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
    
  2. Başarısız olan Değişkenleri Çıkarma politikası XML'sinde bu öğelerden herhangi birinin bulunup bulunmadığını kontrol edin ve <Pattern> öğesini ekleyin: URIPath, QueryParam, Header, FormParam, XMLPayload veya JSONPayload.

    Örneğin, <QueryParam> öğesi içinde <Pattern> öğesi bulunan bir Değişkenleri Çıkarma politikası örneğini aşağıda bulabilirsiniz:

    <?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> öğelerinin her birinin tanımını inceleyin. Geçersiz tanıma sahip bir <Pattern> öğesi varsa hatanın nedeni budur.

    Yukarıda gösterilen Değişkenleri Çıkarma politikası örneğinde, <QueryParam> öğesindeki <Pattern> tanımının geçersiz olduğunu unutmayın. Bu nedenle, API proxy'sinin dağıtımı başarısız olur. Ayrıca Eşleştirme ve değişken oluşturma hakkında

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

Çözünürlük

Değişkenleri Ayıklama politikasındaki URIPath, QueryParam, Header, FormParam, XMLPayload veya JSONPayload öğelerinde <Pattern> öğe tanımının geçerli olduğundan emin olun. Örneğin:

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

Ayrıca Eşleştirme ve değişken oluşturma hakkında başlıklı makaleyi inceleyin.

XPathCompilationFailed

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

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].

Örnek hata mesajı

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.

Örnek ekran görüntüsü

Neden

Önek veya <XPath> öğesinde kullanılan değer, Değişkenleri Ayıklama politikasında belirtilen ad alanlarından herhangi birinin parçası değilse API proxy'sinin dağıtımı başarısız olur.

Ad alanları, XPath ve önek hakkında daha fazla bilgiyi XML Ad Alanları ve Bunların XPath ve XSLT'yi Nasıl Etkilediği başlıklı makalede bulabilirsiniz.

Teşhis

  1. Hatanın oluştuğu Değişkenleri Çıkar politikası ile derlenemeyen XPath'i belirleyin. Bu öğelerin ikisini de hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı EV-XML-Age , xpath ise /apigee:Directions/apigee:route/apigee:leg/apigee:name'dir.

    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. Başarısız olan Extract Variables politikası XML'sinde, <XPath> öğesinde ayarlanan XPath'in hata mesajında tanımlanan XPath ile eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politikada /apigee:Directions/apigee:route/apigee:leg/apigee:name olarak belirtilmiştir. Bu, hata mesajındakiyle eşleşir:

    <?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. Değişkenleri Çıkarma Politikası'ndaki <Namespaces> ve <XPath> öğelerini inceleyin. Hata mesajında belirtilen <XPath>, Değişkenleri Çıkar politikasında belirtilen ad alanlarının parçası olmayan bir önek veya değer kullanıyorsa hatanın nedeni budur.

    Örnek Değişkenleri Çıkarma politikasında belirli <XPath> için apigee önekinin kullanıldığına dikkat edin.

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

    Ancak apigee öneki, <Namespace> öğelerinin hiçbirinde tanımlanmamıştır. Bu nedenle, <XPath> derlemesi başarısız olur ve dağıtım hatası oluşur.

Çözünürlük

<XPath> öğelerinde kullanılan tüm ad alanlarının Değişkenleri Ayıklama Politikası'nda beyan edildiğinden emin olun. Örneğin:

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