Устранение ошибок при развертывании политики JavaScript,Устранение ошибок при развертывании политики JavaScript

Вы просматриваете документацию Apigee Edge .
Перейдите к документации Apigee X.
информация

Инвалидресаурлформат

Сообщение об ошибке

Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Если формат URL-адреса ресурса, указанный в элементе <ResourceURL> или <IncludeURL> политики JavaScript, недействителен, развертывание прокси-сервера API завершается неудачей.

Правильный формат для указания URL-адреса ресурса показан ниже:

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

Например, если элемент <ResourceURL> указан, как показано ниже, развертывание прокси-сервера API завершается неудачей, поскольку оно не соответствует предписанному шаблону:

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

Диагностика

  1. Определите недопустимый формат URL-адреса ресурса, используемый в политике JavaScript. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке недопустимый формат URL-адреса ресурса — jsc:add_variables.js .

      Error Deploying Revision 1 to test
        Invalid resource url format. Resource url is jsc:add_variables.js.
    
  2. Проверьте все политики JavaScript в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика JavaScript, в которой URL-адрес ресурса, указанный в элементе <ResourceURL> или <IncludeURL> , соответствует недопустимой записи, указанной на шаге 1 выше, то это и есть причина ошибки.

    Например, следующая политика определяет URL-адрес ресурса как jsc:add_variables.js , что соответствует тому, что указано в сообщении об ошибке:

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

    Поскольку URL-адрес ресурса указан как jsc:add_variables.js , что недопустимо, развертывание прокси-сервера API завершается с ошибкой:

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

Разрешение

Убедитесь, что формат URL-адреса ресурса, указанный в элементе <ResourceURL> или <IncludeURL> политики JavaScript, действителен. Например:

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

Инвалидресаурлреференце

Сообщение об ошибке

Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Если элементы <ResourceURL> и <IncludeURL> ссылаются на несуществующий файл JavaScript, развертывание прокси-сервера API завершается неудачно.

Если вы развертываете пакет прокси-сервера со своего локального компьютера, исходные файлы JavaScript должны храниться в каталоге /apiproxy/resources/jsc . В этом случае исходные файлы ограничены прокси-сервером API.

В пользовательском интерфейсе Edge исходные файлы JavaScript отображаются в разделе jsc в разделе «Сценарии» на панели «Навигатор» редактора прокси-сервера API. Вы также можете хранить файлы ресурсов в репозиториях уровня организации и среды (например, чтобы сделать код JavaScript доступным для всех прокси в организации или среде).

Если какие-либо файлы ресурсов, указанные в политике, не могут быть найдены ни в одной из доступных областей (прокси, среда или организация), возникает эта ошибка.

Диагностика

  1. Определите политику JavaScript, в которой произошла ошибка и которая содержит ссылку на недопустимый URL-адрес ресурса. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики — js-TotalVariable , а ссылка на недопустимый URL-адрес ресурса — jsc://dependent_js.js .

    Invalid resource url ref jsc://dependent_js.js in policy js-TotalVariable in aprabhashankar-eval
    
  2. Убедитесь, что ссылка на URL-адрес ресурса, указанная в неудачной политике JavaScript, соответствует значению, указанному в сообщении об ошибке (шаг 1 выше). Например, следующая политика определяет ссылку на URL-адрес ресурса как jsc://dependent_js.js , что соответствует тому, что указано в сообщении об ошибке:

    <?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, частью определенного пакета прокси-сервера API или существует ли он в рамках организации или среды.

    1. Чтобы проверить, является ли файл частью определенного пакета прокси-сервера API, выполните один из следующих шагов:
      1. В пользовательском интерфейсе Edge проверьте, находится ли этот файл в разделе «Сценарии» прокси-сервера API.
      2. Загрузите пакет прокси-сервера API и найдите, существует ли файл.
    2. Если файл не является частью определенного пакета прокси-сервера API, проверьте, существует ли он на уровне организации или среды. Для этого расследования вы можете использовать API файлов ресурсов .

    Если файл не существует на уровне прокси-сервера API, организации или среды, это и есть причина ошибки.

    Напомним, что в описанном выше примере недопустимое имя файла JavaScript dependent_js.js . Обратите внимание, что на снимке экрана ниже файл, указанный в качестве URL-адреса ресурса в политике, не отображается в разделе «Скрипты». Следовательно, он не является частью прокси-сервера API. Если также файл не существует на уровне организации или среды, развертывание прокси-сервера API завершается с ошибкой:

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

Разрешение

Убедитесь, что файлы JavaScript, указанные в элементах <ResourceURL> и <IncludeURL> относятся к допустимому файлу, существующему на уровне прокси-сервера API, организации или среды.

Чтобы исправить пример политики JavaScript, показанный выше, добавьте dependent_js.js в пакет прокси-сервера API. На снимке экрана ниже вы можете видеть, что файлы JavaScript, указанные в элементах <ResourceURL> и <IncludeURL> , видны в разделе «Скрипты» пакета API Proxy.

Неправильный тип ресурса

Сообщение об ошибке

Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Эта ошибка возникает во время развертывания, если элементы <ResourceURL> и <IncludeURL> политики JavaScript относятся к любому типу ресурса, кроме jsc (файл JavaScript).

Например, если элемент <IncludeURL> объявлен, как показано ниже, развертывание прокси-сервера API завершится неудачей:

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

Это связано с тем, что речь идет о неправильном типе ресурса node .

Диагностика

  1. Определите недопустимый тип ресурса, используемый в политике JavaScript. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке недопустимым типом ресурса является node .

    Resource js_checkType.js is the wrong type. It is node: but Javascript steps use type jsc:.
    
  2. Проверьте все политики JavaScript в конкретном прокси-сервере API, где произошел сбой. Если существует какая-либо политика JavaScript, в которой ресурс, указанный в элементе <ResourceURL> или <IncludeURL> , соответствует недопустимому типу ресурса, указанному на шаге 1 выше, то это и есть причина ошибки.

    Например, следующая политика определяет тип ресурса как node , что соответствует тому, что указано в сообщении об ошибке:

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

    Поскольку тип ресурса указан как node , что является недопустимым, развертывание прокси-сервера API завершается с ошибкой:

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

Разрешение

Убедитесь, что элементы <ResourceURL> и <IncludeURL> в политике JavaScript всегда ссылаются на тип ресурса jsc .

Чтобы исправить показанный выше пример, измените элемент <ResourceURL> , указав тип ресурса jsc .

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

Сообщение об ошибке

Развертывание прокси-сервера API через пользовательский интерфейс Edge или API управления Edge завершается с ошибкой с этим сообщением об ошибке:

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

Пример сообщения об ошибке

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

Пример скриншота

Причина

Развертывание политики JavaScript может завершиться сбоем из-за этой ошибки в следующих случаях:

  1. Если элемент <ResourceURL> не объявлен или URL-адрес ресурса не определен в этом элементе. Элемент <ResourceURL> является обязательным элементом.
  2. Элемент <IncludeURL> объявлен, но URL-адрес ресурса не определен в этом элементе. Элемент <IncludeURL> является необязательным, но если он объявлен, URL-адрес ресурса должен быть указан внутри элемента <IncludeURL> .

Например, если элемент <IncludeURL> объявлен, как показано ниже, развертывание прокси-сервера API завершится неудачей:

<IncludeURL></IncludeURL>

Диагностика

  1. Определите политику JavaScript, в которой произошла ошибка. Эту информацию можно найти в сообщении об ошибке. Например, в следующей ошибке имя политики — Policy-js-example :

    Bundle is invalid. Errors:[Entity : Policy-js-example, No ResourceURL or Source;].
    
  2. В XML-файле неудавшейся политики JavaScript выполните следующие проверки:

    1. Элемент <ResourceURL> должен быть объявлен, и для этого элемента должен быть определен URL-адрес ресурса.
    2. Если объявлен элемент <IncludeURL> , внутри него необходимо указать URL-адрес ресурса. Объявление элемента <IncludeURL> не является обязательным.

    Если какая-либо из вышеперечисленных проверок не удалась, то это и есть причина ошибки.

    Пример 1. В следующей политике не объявлен элемент <ResourceURL> :

    <?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> не объявлен, развертывание прокси-сервера API завершается с ошибкой:

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

    Пример 2. Следующая политика содержит пустой элемент <IncludeURL> .

  <?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> не имеет URL-адреса ресурса, развертывание прокси-сервера API завершается с ошибкой:

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

Разрешение

Убедитесь в следующем в политике JavaScript:

  1. Элемент <ResourceURL> объявлен, и URL-адрес ресурса определен внутри этого элемента. Элемент <ResourceURL> является обязательным элементом.
  2. Если объявлен элемент <IncludeURL> , URL-адрес включаемого ресурса должен быть определен внутри этого элемента. Элемент <IncludeURL> является необязательным, но если он объявлен, URL-адрес ресурса должен быть указан внутри элемента <IncludeURL> .

    Чтобы исправить показанный выше пример 1, включите элемент <ResourceURL> в действительный файл JavaScript:

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

    Чтобы исправить пример 2, показанный выше, включите действительный файл JavaScript в элемент <IncludeURL>

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