Pemecahan masalah error deployment kebijakan Variabel

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

NothingToExtract

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Jika Kebijakan Ekstrak Variabel tidak memiliki elemen apa pun URIPath, QueryParam, Header, FormParam, XMLPayload, atau JSONPayload, deployment Proxy API akan gagal karena tidak ada yang dapat diekstrak.

Seperti yang ditunjukkan dalam pesan error, kebijakan Ekstrak Variabel harus menyertakan setidaknya salah satu dari elemen berikut dalam kebijakan: URIPath, QueryParam, Header, FormParam, XMLPayload, atau JSONPayload.

Diagnosis

Periksa kebijakan Ekstrak Variabel yang disebutkan dalam pesan error. Jika kebijakan tersebut tidak memiliki salah satu elemen berikut: URIPath, QueryParam, Header, FormParam, XMLPayload, atau JSONPayload, berarti itulah penyebab error. Misalnya, kebijakan Ekstrak Variabel berikut tidak memiliki elemen yang disebutkan di atas:

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

Karena tidak ada elemen wajib yang tersedia dalam kebijakan Variabel Ekstrak, deployment proxy API akan gagal.

Resolusi

Pastikan kebijakan Ekstrak Variabel memiliki setidaknya salah satu elemen wajib berikut: URIPath, QueryParam, Header, FormParam, XMLPayload, JSONPayload. Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Error ini terjadi jika Kebijakan Ekstrak Variabel memiliki awalan yang ditentukan dalam elemen <Namespace> di bagian elemen <XMLPayload>, tetapi tidak ada URI yang ditentukan.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi dan nama awalan. Anda dapat menemukan kedua item ini dalam pesan error. Misalnya, dalam error berikut , nama kebijakan adalah EV-XML-Age dan awalannya adalah apigee:

    ExtractVariables EV-XML-Age: Non-empty prefix apigee cannot be mapped to empty uri.
    
  2. Dalam XML kebijakan Ekstrak Variabel yang gagal, pastikan nama awalan yang ditetapkan dalam elemen <Namespace> pada elemen <XMLPayload> cocok dengan nama awalan yang diidentifikasi dalam pesan error (langkah #1 di atas). Misalnya, kebijakan berikut menentukan awalan bernama apigee dalam elemen <Namespace> , yang cocok dengan yang ada dalam pesan error:

    <?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. Validasi apakah elemen <Namespace> dengan awalan tertentu yang diidentifikasi di langkah #2 memiliki URI yang valid. Jika URI tidak ada, berarti itulah penyebab error.

    Pada contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, perhatikan bahwa tidak ada URI yang sesuai dengan elemen <Namespace> dengan awalan apigee; sehingga Anda mendapatkan error:

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

Resolusi

Pastikan semua elemen <Namespace> yang ditentukan dengan awalan memiliki URI yang sesuai dalam kebijakan Ekstrak Variabel. Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Error ini terjadi jika Kebijakan Ekstrak Variabel memiliki awalan yang sama yang ditentukan lebih dari sekali dalam elemen <Namespace> di bagian elemen <XMLPayload>.

Misalnya, error ini terjadi karena awalan apigee ditentukan dua kali seperti yang ditunjukkan di bawah ini:

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

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi dan nama awalan. Anda dapat menemukan kedua item ini dalam pesan error. Misalnya, dalam error berikut, nama kebijakan adalah EV-XML-Age dan awalannya adalah apigee:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
  2. Dalam XML kebijakan Ekstrak Variabel yang gagal, pastikan nama awalan yang ditetapkan dalam elemen <Namespace> pada elemen <XMLPayload> cocok dengan nama awalan yang diidentifikasi dalam pesan error (langkah #1 di atas). Misalnya, kebijakan berikut menentukan awalan bernama apigee dalam elemen <Namespace> , yang cocok dengan yang ada dalam pesan error:

    <?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. Tentukan apakah elemen <Namespace> dengan awalan tertentu, yang diidentifikasi di langkah #2 telah ditentukan lebih dari sekali. Jika didefinisikan lebih dari sekali, maka itulah penyebab error.

    Pada contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, perhatikan bahwa elemen <Namespace> dengan awalan apigee telah ditentukan dua kali; oleh karena itu, Anda mendapatkan error:

    ExtractVariables EV-XML-Age: Duplicate prefix apigee.
    
    

Resolusi

Pastikan hanya ada satu definisi untuk setiap awalan di elemen <Namespace> dalam kebijakan Ekstrak Variabel. Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Jika Kebijakan Ekstrak Variabel tidak memiliki elemen <XPath> dalam elemen <XMLPayload>, deployment proxy API akan gagal dengan error yang ditampilkan di atas.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel yang gagal dari pesan error. Misalnya, dalam error berikut, nama kebijakan adalah Extract-Variables-1:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Pada XML kebijakan Ekstrak Variabel yang gagal, periksa apakah ada elemen <XMLPayload> tanpa elemen turunan <XPath>. Jika ya, maka itulah penyebab error.

    Misalnya, berikut adalah kebijakan Ekstrak Variabel yang memiliki elemen <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>
    

    Karena tidak ada elemen <XPath>, deployment Proxy API gagal.

Resolusi

Pastikan kebijakan Ekstrak Variabel memiliki elemen <XPath> yang ditentukan di elemen <XMLPayload>. Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Jika Kebijakan Ekstrak Variabel memiliki ekspresi <XPath> kosong dalam elemen <XMLPayload>, deployment proxy API akan gagal.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel yang gagal dari pesan error. Misalnya, dalam error berikut, nama kebijakan adalah Extract-Variables-1:

    ExtractVariables Extract-Variables-1: no xpaths to evaluate in variable name.
    
  2. Pada XML kebijakan Ekstrak Variabel yang gagal, tentukan apakah ada elemen <XMLPayload> dengan elemen turunan <XPath> yang kosong. Jika ya, maka itulah penyebab error.

    Misalnya, berikut adalah kebijakan Ekstrak Variabel yang memiliki elemen <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>
    

    Karena ada elemen <XPath> yang kosong dalam elemen <XMLPayload>, deployment Proxy API akan gagal.

Resolusi

Pastikan kebijakan Ekstrak Variabel memiliki elemen <XPath> yang tidak kosong dan valid yang ditentukan di elemen <XMLPayload>. Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Jika Kebijakan Ekstrak Variabel tidak memiliki elemen <JSONPath> dalam elemen <JSONPayload>, deployment proxy API akan gagal dengan error yang ditampilkan di atas.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel yang gagal dari pesan error. Misalnya, dalam error berikut, nama kebijakan adalah Extract-Variables-1:

    ExtractVariables Extract-Variables-1: no jsonpaths to evaluate in variable name.
    
  2. Pada XML kebijakan Variabel Ekstrak yang gagal, tentukan apakah ada elemen <JSONPayload> tanpa elemen turunan <JSONPath> yang diperlukan. Jika ya, maka itulah penyebab error.

    Misalnya, berikut adalah kebijakan Ekstrak Variabel yang memiliki elemen <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>
    

    Karena tidak ada elemen turunan <JSONPath> yang ditetapkan pada elemen <JSONPayload>, deployment Proxy API akan gagal.

Resolusi

Pastikan kebijakan Ekstrak Variabel memiliki elemen <JSONPath> yang ditentukan di elemen <JSONPayload>. Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Jika Kebijakan Ekstrak Variabel memiliki ekspresi <JSONPath> kosong dalam elemen <JSONPayload>, deployment proxy API akan gagal.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel yang gagal dari pesan error. Misalnya, dalam error berikut, nama kebijakan adalah Extract-Variables-1:

    ExtractVariables Extract-Variables-1: JSONPath expression is empty in variable name.
    
  2. Dalam XML kebijakan Ekstrak Variabel yang gagal, verifikasi apakah ada elemen <JSONPayload> dengan elemen turunan <JSONPath> yang kosong. Jika ya, maka itulah penyebab error.

    Misalnya, berikut adalah kebijakan Ekstrak Variabel yang memiliki elemen <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>
    

    Karena ada elemen <JSONPath> yang kosong dalam elemen <JSONPayload>, deployment Proxy API akan gagal.

Resolusi

Pastikan kebijakan Ekstrak Variabel memiliki elemen <JSONPath> yang tidak kosong dan valid yang ditentukan di elemen <JSONPayload>. Contoh:

<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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Jika Kebijakan Ekstrak Variabel tidak memiliki atribut name di salah satu elemen kebijakan seperti QueryParam, Header, FormParam atau Variable, jika diperlukan, deployment proxy API akan gagal.

Misalnya, error ini terjadi jika atribut name tidak ada dalam elemen Variable.

Diagnosis

  1. Identifikasi nama kebijakan Ekstrak Variabel tempat error terjadi dan elemen dengan atribut name tidak ada. Anda dapat menemukan item ini dalam pesan error. Misalnya, dalam error berikut, nama kebijakan adalah Extract-Variables-1 dan nama elemen adalah Variable:

    Error occurred while validation of bean Extract-Variables-1.xml. Reason: - Required attribute name is missing in Variable
    
  2. Dalam XML kebijakan Ekstrak Variabel yang gagal, pastikan semua elemen dengan nama yang ditentukan dari langkah #1 di atas memiliki atribut name. Jika ada elemen yang tidak memiliki atribut nama, berarti itulah penyebab error.

    Misalnya, kebijakan Ekstrak Variabel berikut memiliki elemen <Variable> yang ditentukan:

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

    Perhatikan bahwa atribut name tidak ada dalam elemen Variable, sehingga deployment Proxy API gagal.

Resolusi

Pastikan Kebijakan Ekstrak Variabel berisi atribut name yang diperlukan, untuk elemen QueryParam, Header, FormParam , atau Variable. Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Jika Kebijakan Ekstrak Variabel tidak memiliki variabel yang ditentukan dalam elemen <Pattern>, deployment proxy API akan gagal. Elemen <Pattern> memerlukan nama variabel tempat data yang diekstrak akan disimpan.

Diagnosis

  1. Identifikasi nama kebijakan Ekstrak Variabel tempat error terjadi dan pola variabel tidak ada. Anda dapat menemukan item ini dari pesan error. Misalnya, dalam error berikut, nama kebijakan adalah Extract-Variables-1 dan nama elemen adalah /a/b:

    Pattern /a/b/ should have at least one variable in ExtractVariables stepDefinition ExtractVariables-1.
    
  2. Di XML kebijakan Ekstrak Variabel yang gagal, pastikan pola yang ditetapkan di elemen <Pattern> cocok dengan pola yang diidentifikasi dalam pesan error (langkah #1 di atas). Misalnya, kebijakan berikut menentukan pola /a/b, yang cocok dengan yang ada dalam pesan error:

    Misalnya, berikut adalah kebijakan Ekstrak Variabel yang memiliki tiga elemen <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. Periksa apakah elemen <Pattern> yang diidentifikasi di langkah #2 tidak memiliki variabel. Variabel harus diapit dalam tanda kurung kurawal. Jika pola tidak memiliki variabel, berarti itulah penyebab error.

    Elemen <Pattern> yang memiliki pola /a/b tidak menyertakan variabel; sehingga deployment Proxy API gagal

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

Resolusi

Pastikan setiap elemen <Pattern> menyertakan variabel (nama yang diapit tanda kurung kurawal). Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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.

Contoh screenshot

Penyebab

Jika Kebijakan Ekstrak Variabel memiliki ekspresi <XPath> dengan jenis <Variable> yang ditentukan sebagai nodeset, tetapi ekspresi tersebut tidak dapat dikonversi menjadi nodeset, deployment proxy API akan gagal.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi dan XPath yang tidak dapat dikonversi ke kumpulan node. Anda dapat menemukan kedua item ini dalam pesan error. Misalnya, dalam error berikut , nama kebijakan adalah Extract-Variables-1 dan XPath adalah 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. Pada XML kebijakan Ekstrak Variabel yang gagal, pastikan XPath yang ditetapkan dalam elemen <XPath> cocok dengan XPath yang diidentifikasi dalam pesan error (langkah #1 di atas). Misalnya, kebijakan berikut menetapkan sebagai 123, yang cocok dengan yang ada dalam pesan error:

    <?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. Periksa jenis elemen <Variable> yang sesuai dengan <XPath> yang diidentifikasi pada langkah #2 di atas. Jika jenis <Variable> adalah nodeset, berarti itulah penyebab error.

    Perhatikan bahwa ekspresi <XPath> adalah 123 dalam contoh kebijakan Ekstrak Variabel.

    <XPath>123</XPath>
    

    Ekspresi 123 tidak dapat dikonversi menjadi kumpulan node. Jadi, deployment Proxy API gagal.

Resolusi

Pastikan ekspresi <XPath> yang digunakan dalam kebijakan Ekstrak Variabel dapat dikonversi ke nodeset jika jenis <Variable> ditentukan sebagai nodeset. Contoh:

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

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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

Contoh screenshot

Penyebab

Jika definisi elemen <Pattern> tidak valid di salah satu elemen seperti URIPath, QueryParam, Header, FormParam, XMLPayload, atau JSONPayload dalam Kebijakan Variabel Ekstrak, deployment proxy API akan gagal.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel yang gagal dari pesan error. Misalnya, dalam error berikut, nama kebijakan adalah Extract-Variables-2:

    Pattern {*} is invalid in ExtractVariables stepDefinition ExtractVariables-2.
    
  2. Dalam XML kebijakan Ekstrak Variabel yang gagal, periksa apakah salah satu elemen ini ada dan sertakan elemen <Pattern>.: URIPath, QueryParam, Header, FormParam, XMLPayload atau JSONPayload.

    Misalnya, berikut adalah contoh kebijakan Ekstrak Variabel dengan elemen <Pattern> dalam elemen <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. Periksa definisi setiap elemen <Pattern>. Jika ada elemen <Pattern> dengan definisi yang tidak valid, berarti itulah penyebab error.

    Pada contoh kebijakan Ekstrak Variabel yang ditampilkan di atas, perhatikan bahwa definisi <Pattern> dalam elemen <QueryParam> tidak valid. Oleh karena itu, deployment Proxy API gagal. Lihat juga Tentang pencocokan dan pembuatan variabel

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

Resolusi

Pastikan definisi elemen <Pattern> dalam elemen URIPath, QueryParam, Header, FormParam, XMLPayload, atau JSONPayload pada kebijakan Ekstrak Variabel valid. Contoh:

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

Lihat juga Tentang pencocokan dan pembuatan variabel

XPathCompilationFailed

Pesan error

Deployment proxy API melalui UI Edge atau Edge management API gagal dengan pesan error ini:

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

Contoh pesan error

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.

Contoh screenshot

Penyebab

Jika awalan atau nilai yang digunakan dalam elemen <XPath> bukan bagian dari namespace yang dideklarasikan dalam Kebijakan Variabel Ekstrak, deployment proxy API akan gagal.

Anda dapat menemukan informasi lebih lanjut tentang namespace, XPath, dan awalan di XML Namespace dan Bagaimana Pengaruhnya terhadap XPath dan XSLT.

Diagnosis

  1. Identifikasi kebijakan Ekstrak Variabel tempat error terjadi dan XPath yang tidak dapat dikompilasi. Anda dapat menemukan kedua item ini dalam pesan error. Misalnya, dalam error berikut , nama kebijakan adalah EV-XML-Age dan xpath-nya adalah /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. Pada XML kebijakan Ekstrak Variabel yang gagal, pastikan XPath yang ditetapkan dalam elemen <XPath> cocok dengan XPath yang diidentifikasi dalam pesan error (langkah #1 di atas). Misalnya, kebijakan berikut menetapkan sebagai /apigee:Directions/apigee:route/apigee:leg/apigee:name, yang cocok dengan yang ada dalam pesan error:

    <?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. Periksa elemen <Namespaces> dan <XPath> dalam kebijakan Ekstrak Variabel. Jika <XPath> spesifik yang ditunjukkan dalam pesan error menggunakan awalan atau nilai yang bukan bagian dari namespace yang dideklarasikan dalam kebijakan Ekstrak Variabel, berarti itulah penyebab error.

    Perhatikan bahwa <XPath> spesifik menggunakan awalan apigee dalam contoh kebijakan Ekstrak Variabel.

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

    Namun, awalan apigee tidak ditentukan dalam elemen <Namespace> mana pun; oleh karena itu, kompilasi <XPath> gagal menyebabkan kegagalan deployment.

Resolusi

Pastikan semua namespace yang digunakan dalam elemen <XPath> dinyatakan dalam Kebijakan Ekstrak Variabel. Contoh:

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