Распространенная проблема развертывания среды Worklight 6.2 после последнего пакета исправлений: WL не определен

Недавно я установил последнее обновление пакета исправлений Worklight, и теперь я использую версию 6.2.0.01.20141027-1531. С тех пор я заметил блокирующую ошибку, связанную с моим общим развертыванием среды на сервере WL.

Теперь, когда я развертываю свое приложение («Запустить от имени» > «Создать все среды», а затем «Запустить на сервере разработки Worklight»), запуск моего приложения в «Предварительном просмотре как общие ресурсы» или в мобильных веб-средах iPad/Android дает мне следующее Ошибка Javascript:

WL is not defined

Когда я проверяю исходный код, я понимаю, что исходный код Javascript, сгенерированный Worklight, отсутствует в теге head. Я должен увидеть что-то вроде этого:

<script>
    // Define WL namespace.
    var WL = WL ? WL : {};
    /**
     * WLClient configuration variables.
     * Values are injected by the deployer that packs the gadget.
     */
    WL.StaticAppProps = {
        "APP_DISPLAY_NAME": "appname",
        "APP_ID": "project",
        "APP_SERVICES_URL": "\/project\/apps\/services\/",
        "APP_VERSION": "1.0",
        "ENVIRONMENT": "preview",
        "LOGIN_DISPLAY_TYPE": "popup",
        "LOGIN_POPUP_HEIGHT": 610,
        "LOGIN_POPUP_WIDTH": 920,
        "PREVIEW_ENVIRONMENT": "common",
        "WORKLIGHT_PLATFORM_VERSION": "6.2.0.01.20141027-1531",
       "WORKLIGHT_ROOT_URL": "\/project\/apps\/services\/api\/app\/common\/"
    };
</script>

...но в исходнике моей страницы ничего подобного нет (поэтому БЛ не найден). Более того, он не включает файлы worklight.js и wljq.js, которые должны динамически добавляться на этапе сборки (насколько мне известно). Мой контент index.html «ванильный», и это объясняет, почему ничего не работает.

Поэтому я решил проверить bin-архивы, созданные на этапе сборки. Бывает так, что архив app-common.wlapp содержит правильно сгенерированный исходный код со всем, что сгенерировал Worklight внутри. Похоже, что-то не так происходит на этапе развертывания. Я попытался импортировать его вручную в консоли WL, но, к сожалению, он тоже не работает (тот же результат).

Мне не удалось воспроизвести проблему создания нового проекта, похоже, это происходит только после обновления Worklight до последней версии пакета исправлений. Таким образом, сложно предоставить образец проекта.

NB: все работает нормально после запуска на реальном устройстве. В моем случае нарушена только общая среда. Но мой коллега также заметил эту проблему для других сред, поэтому... Я дам вам знать, если мне удастся воспроизвести ее для других сред.

Спасибо за вашу помощь, пожалуйста, спросите, если вам нужно больше входных данных от меня.


person Jb Gartner    schedule 10.11.2014    source источник


Ответы (1)


  1. Вам не нужно делать "построить все...", а затем "запустить...". Это просто повторение того же шага, поскольку «Запуск на сервере разработки Worklight» означает «создать артефакты проекта (файл .wlapp, .war), а затем развернуть их».

  2. Оригинальный index.html содержит ссылки на initoptions.js, main.js, main.css и messages.js. Вы немного запутались в своих формулировках относительно того, что ожидается и где это ожидается.

В любом случае, попробуйте следующее:

  1. Закрыть затмение
  2. Перейдите в папку tmp и удалите папку wlBuildResources.
  3. Откройте Eclipse и попробуйте следующие два пути:

    • Right-click the app folder > Run As > Run on Worklight Developer Server > Open Worklight Console > preview as common web resources
    • Щелкните правой кнопкой мыши папку приложения > Запуск от имени > Предварительный просмотр.

Скажите мне, какой из двух терпит неудачу, если вообще.

person Idan Adar    schedule 10.11.2014
comment
Предварительный просмотр в качестве общих веб-ресурсов сначала не удалось. Затем предварительный просмотр работал нормально. Я снова попробовал Предварительный просмотр в качестве обычных веб-ресурсов, и на этот раз все сработало нормально. Спасибо за совет. - person Jb Gartner; 10.11.2014
comment
К вашему сведению, теперь, когда я сталкиваюсь с этой проблемой, я просто щелкаю правой кнопкой мыши свое приложение (в папке приложений) > Запуск от имени > Предварительный просмотр. Это работает без необходимости удалять временные папки и без перезапуска Eclipse. - person Jb Gartner; 19.11.2014