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

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

InvalidResourceUrlFormat

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

Развертывание 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>

InvalidResourceUrlReference

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

Развертывание 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. Убедитесь, что указанная в неработающей политике JavaScript ссылка на URL-адрес ресурса совпадает со значением, указанным в сообщении об ошибке (шаг №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 Proxy. На скриншоте ниже видно, что файлы JavaScript, указанные в элементах <ResourceURL> и <IncludeURL> отображаются в разделе Scripts пакета API Proxy.

WrongResourceType

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

Развертывание 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>