JavaScript politikası dağıtım hatasını giderme

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

InvalidResourceUrlFormat

Hata mesajı

Bir API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtılması şu hata mesajıyla başarısız olur:

Error Deploying Revision revision_number to environment
Invalid resource url format. Resource url is invalid_URL.

Örnek hata mesajı

Error Deploying Revision 1 to test
Invalid resource url format. Resource url is jsc:add_variables.js.

Örnek ekran görüntüsü

Neden

JavaScript politikasının <ResourceURL> veya <IncludeURL> öğesi içinde belirtilen kaynak URL'sinin biçimi geçersizse API proxy'sinin dağıtımı başarısız olur.

Kaynak URL'sini belirtmek için doğru biçim aşağıda gösterildiği gibidir:

<ResourceURL>jsc://<file_name>.js</ResourceURL>
<IncludeURL>jsc://<file_name>.js</IncludeURL>

Örneğin, <ResourceURL> öğesi aşağıda gösterildiği gibi belirtilmişse API proxy'sinin dağıtımı, belirtilen kalıba uymadığı için başarısız olur:

<ResourceURL>jsc:add_variables.js</ResourceURL>

Teşhis

  1. JavaScript politikasında kullanılan geçersiz kaynak URL'si biçimini tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada geçersiz kaynak URL'si biçimi jsc:add_variables.js şeklindedir.

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. Hatanın oluştuğu API Proxy'sinde bulunan tüm JavaScript politikalarını inceleyin. <ResourceURL> veya <IncludeURL> öğesinde belirtilen kaynak URL'sinin yukarıdaki 1. adımda tanımlanan geçersiz girişle eşleştiği herhangi bir JavaScript politikası varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada kaynak URL'si jsc:add_variables.js olarak belirtilir. Bu, hata mesajındaki metinle eşleşir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
        <DisplayName>js-TotalVariable</DisplayName>
        <Properties/>
        <ResourceURL>jsc:add_variables.js</ResourceURL>
    </Javascript>
    

    Kaynak URL'si geçersiz olan jsc:add_variables.js olarak belirtildiğinden, API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

    Invalid resource url format. Resource url is jsc:add_variables.js.
    

Çözünürlük

JavaScript politikasının <ResourceURL> veya <IncludeURL> öğesinde belirtilen kaynak URL biçiminin geçerli olduğundan emin olun. Örneğin:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
    <DisplayName>js-TotalVariable</DisplayName>
    <Properties/>
    <ResourceURL>jsc://add_variables.js</ResourceURL>
</Javascript>

InvalidResourceUrlReference

Hata mesajı

Bir API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtılması şu hata mesajıyla başarısız olur:

Error Deploying Revision revision_number to environment
Invalid resource url ref invalid_reference in policy policy_name in org_name

Örnek hata mesajı

Error Deploying Revision 8 to test
Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval

Örnek ekran görüntüsü

Neden

<ResourceURL> ve <IncludeURL> öğeleri mevcut olmayan bir JavaScript dosyasına başvuruda bulunuyorsa API proxy'sinin dağıtımı başarısız olur.

Yerel makinenizden bir proxy paketi dağıtıyorsanız JavaScript kaynak dosyaları /apiproxy/resources/jsc altında depolanmalıdır. Bu durumda, kaynak dosyaların kapsamı API proxy'sine ayarlanır.

Edge kullanıcı arayüzündeki JavaScript kaynak dosyaları, API proxy düzenleyicisinin gezgini bölmesinin Komut Dosyaları bölümünde jsc altında görünür. Ayrıca, kaynak dosyalarını kuruluş ve ortam düzeyindeki depolarda da depolayabilirsiniz (örneğin, JavaScript kodunun bir kuruluş veya ortamdaki tüm proxy'ler tarafından kullanılabilmesi için).

Politikada belirtilen kaynak dosyaları, mevcut kapsamların (proxy, ortam veya kuruluş) hiçbirinde bulunamazsa bu hata oluşur.

Teşhis

  1. Hatanın oluştuğu ve geçersiz kaynak URL referansını içeren JavaScript politikasını tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı js-TotalVariable, geçersiz kaynak URL referansı ise jsc://dependent_js.js şeklindedir.

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    
  2. Başarısız JavaScript politikasında belirtilen kaynak URL referansının, hata mesajında belirtilen değerle eşleştiğini doğrulayın (yukarıdaki 1. adım). Örneğin, aşağıdaki politikada kaynak URL referansı jsc://dependent_js.js olarak belirtilir. Bu, hata mesajındaki metinle eşleşir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
      <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
      <DisplayName>js-TotalVariable</DisplayName>
      <Properties/>
      <ResourceURL>jsc://add_variables.js</ResourceURL>
      <IncludeURL>jsc://dependent_js.js</IncludeURL>
    </Javascript>
    
  3. 1. adımda tanımlanan kaynak dosyanın, ilgili API Proxy paketinin parçası olup olmadığını veya kuruluş ya da ortam kapsamında olup olmadığını kontrol edin.

    1. Dosyanın ilgili API proxy paketinin bir parçası olup olmadığını kontrol etmek için aşağıdaki adımlardan birini uygulayın:
      1. Edge kullanıcı arayüzünde, bu dosyanın API proxy'sinin Komut Dosyaları bölümünde olup olmadığını kontrol edin.
      2. API Proxy paketini indirin ve dosya varsa arama yapın.
    2. Dosya belirli bir API proxy paketinin parçası değilse dosyanın kuruluş veya ortam düzeyinde mevcut olup olmadığını kontrol edin. Bu inceleme için Resource Files API'yi kullanabilirsiniz.

    Dosya API Proxy'si, kuruluş veya ortam düzeyinde mevcut değilse hatanın nedeni budur.

    Yukarıda açıklanan örnekte, geçersiz JavaScript dosya adının dependent_js.js olduğunu unutmayın. Aşağıdaki ekran görüntüsünde, politikada kaynak URL'si olarak belirtilen dosyanın Komut Dosyaları bölümünde görünmediğine dikkat edin. Dolayısıyla, API Proxy'sinin bir parçası değildir. Ayrıca, dosyanın kuruluş veya ortam düzeyinde mevcut olmaması durumunda, API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    

Çözünürlük

<ResourceURL> ve <IncludeURL> öğelerinde belirtilen JavaScript dosyalarının API Proxy'si, kuruluş veya ortam düzeyinde bulunan geçerli bir dosyaya başvurduğundan emin olun.

Yukarıda gösterilen örnek JavaScript politikasını düzeltmek için dependent_js.js dosyasını API Proxy paketine ekleyin. Aşağıdaki ekran görüntüsünde, <ResourceURL> ve <IncludeURL> öğelerinde belirtilen JavaScript dosyalarının API Proxy paketinin Komut Dosyaları bölümünde göründüğünü görebilirsiniz.

WrongResourceType

Hata mesajı

Bir API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtılması şu hata mesajıyla başarısız olur:

Error Deploying Revision revision_number to environment
Resource JavaScript_file is the wrong type. It is invalid_type: but Javascript steps use type jsc:.

Örnek hata mesajı

Error Deploying Revision 2 to test
Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.

Örnek ekran görüntüsü

Neden

Bu hata, JavaScript politikasının <ResourceURL> ve <IncludeURL> öğeleri jsc (JavaScript dosyası) dışındaki bir kaynak türüne referans veriyorsa dağıtım sırasında ortaya çıkar.

Örneğin, <IncludeURL> öğesi aşağıda gösterildiği gibi tanımlanırsa API proxy'sinin dağıtımı başarısız olur:

<IncludeURL>node://javascript-dependency.js</IncludeURL>

Bunun nedeni, bu URL'nin yanlış bir node kaynak türüne atıfta bulunmasıdır.

Teşhis

  1. JavaScript Politikasında kullanılan geçersiz kaynak türünü tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada geçersiz kaynak türü node şeklindedir.

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    
  2. Hatanın oluştuğu API Proxy'sinde bulunan tüm JavaScript politikalarını inceleyin. <ResourceURL> veya <IncludeURL> öğesinde belirtilen kaynağın yukarıdaki 1. adımda tanımlanan geçersiz kaynak türüyle eşleştiği herhangi bir JavaScript politikası varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada kaynak türü node olarak belirtilir. Bu, hata mesajındaki kaynakla eşleşir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
        <DisplayName>js-TotalVariable</DisplayName>
        <Properties/>
        <ResourceURL>node://js_checkType.js</ResourceURL>
        <IncludeURL>jsc://javascript-dependency.js</IncludeURL>
    </Javascript>
    

    Kaynak türü, geçersiz olan node olarak belirtildiğinden, API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    

Çözünürlük

JavaScript politikasındaki <ResourceURL> ve <IncludeURL> öğelerinin her zaman jsc kaynak türüne başvurduğundan emin olun.

Yukarıda gösterilen örneği düzeltmek için <ResourceURL> öğesini, jsc kaynak türüne sahip olacak şekilde değiştirin.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-TotalVariable">
    <DisplayName>js-TotalVariable</DisplayName>
    <Properties/>
    <ResourceURL>jsc://js_checkType.js</ResourceURL>
    <IncludeURL>jsc://javascript-dependency.js</IncludeURL>
</Javascript>

NoResourceURLOrSource

Hata mesajı

Bir API proxy'sinin Edge kullanıcı arayüzü veya Edge yönetim API'si üzerinden dağıtılması şu hata mesajıyla başarısız olur:

Error Saving Revision revision_number
Bundle is invalid. Errors:[Entity : Policy-policy_name, No ResourceURL or Source;].

Örnek hata mesajı

Error Saving Revision 10
Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].

Örnek ekran görüntüsü

Neden

Aşağıdaki senaryolarda, JavaScript politikasının dağıtımı bu hatayla başarısız olabilir:

  1. <ResourceURL> öğesi bildirilmemişse veya kaynak URL'si bu öğe içinde tanımlı değilse. <ResourceURL> öğesi zorunlu bir öğe.
  2. <IncludeURL> öğesi tanımlandı, ancak kaynak URL'si bu öğe içinde tanımlı değil. <IncludeURL> öğesi isteğe bağlıdır ancak belirtilmesi durumunda kaynak URL'si <IncludeURL> öğesinin içinde belirtilmelidir.

Örneğin, <IncludeURL> öğesi aşağıda gösterildiği gibi tanımlanırsa API proxy'sinin dağıtımı başarısız olur:

<IncludeURL></IncludeURL>

Teşhis

  1. Hatanın oluştuğu JavaScript politikasını tanımlayın. Bu bilgileri hata mesajında bulabilirsiniz. Örneğin, aşağıdaki hatada politika adı Policy-js-example şeklindedir:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. Başarısız olan JavaScript politikası XML dosyasında aşağıdaki kontrolleri gerçekleştirin:

    1. <ResourceURL> öğesi ve kaynak URL'si tanımlanmalıdır.
    2. <IncludeURL> öğesi bildirilmişse içinde bir kaynak URL'si belirtmeniz gerekir. <IncludeURL> öğesi belirtmek isteğe bağlıdır.

    Yukarıdaki kontrollerden herhangi biri başarısız olursa hatanın nedeni budur.

    1. Örnek: Aşağıdaki politikada <ResourceURL> öğesi bildirilmemiştir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
    </Javascript>
    

    <ResourceURL> öğesi bildirilmediğinden API Proxy'sinin dağıtımı şu hatayla başarısız olur:

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    

    2. Örnek: Aşağıdaki politikada boş bir <IncludeURL> öğesi var.

  <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
      <DisplayName>js-example</DisplayName>
      <Properties/>
      <ResourceURL>jsc://check_var.js</ResourceURL>
      <IncludeURL></IncludeURL>
  </Javascript>

<IncludeURL> öğesi kaynak URL'si içermediğinden API Proxy'sinin dağıtımı şu hatayı vererek başarısız olur:

  Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].

Çözünürlük

JavaScript politikasında aşağıdakilerden emin olun:

  1. <ResourceURL> öğesi açıklandı ve kaynak URL'si bu öğenin içinde tanımlanır. <ResourceURL> öğesi zorunlu bir öğe.
  2. <IncludeURL> öğesi belirtilirse kaynak ekleme URL'si bu öğenin içinde tanımlanmalıdır. <IncludeURL> öğesi isteğe bağlıdır ancak belirtilmesi durumunda kaynak URL'si <IncludeURL> öğesinin içinde belirtilmelidir.

    Yukarıda gösterilen Örnek 1'i düzeltmek için <ResourceURL> öğesini geçerli bir JavaScript dosyasıyla ekleyin:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
        <ResourceURL>jsc://check_var.js</ResourceURL>
    </Javascript>
    

    Yukarıda gösterilen Örnek 2'yi düzeltmek için <IncludeURL> öğesine geçerli bir JavaScript dosyası ekleyin

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="js-example">
        <DisplayName>js-example</DisplayName>
        <Properties/>
        <ResourceURL>jsc://check_var.js</ResourceURL>
        <IncludeURL>jsc://js_dependency.js</IncludeURL>
    </Javascript>