Модуля, может потребоваться (пере)компиляции обертывание


при запуске в скомпилированном режиме я получаю этот страшный модуль GWT 'mymodule', возможно, потребуется (повторно)скомпилированное диалоговое сообщение.

Я составил список вещей, которые другие предложили попробовать при получении этого сообщения об ошибке от GWT, работающего в скомпилированном режиме. Я открыл файл WAR, созданный maven, и все файлы находятся в нужном месте. Я подтвердил это против другого проекта GWT maven, который не получает эту ошибку. Однако ни одно из приведенных ниже предложений не было исправлено проблема. Я также не смог определить, какая разница отсутствует между этими двумя проектами - тот, который работает, и мой, который не будет работать в скомпилированном режиме.

  • соответствует ли имя на странице запуска html модулю?
  • много хромых предложений, чтобы добавить gwt.codesrv строку запроса параметр в URL-адрес. Однако, дело в том, чтобы работать без в скомпилированном виде. Очевидно, что я не хочу работать в режиме хостинга. Эта работа. Я пытаюсь запустить в скомпилированном режиме в Кот.
  • очистить кэш браузера? -- нет. не помогло
  • Я не over-riden " пользователь.агент " недвижимость в mymodule.ГВт.xml
  • добавьте в конфигурацию Maven-clean-plugin свой выходной каталог eclipse: src / main/webapp/WEB-INF / classes

Что еще я могу попробовать?

8 58

8 ответов:

вы запустили DevMode с помощью вашего src/main/webapp в папку "войны"? или другими словами, есть *.nocache.js в своем src/main/webapp? В этом случае этот файл перезапишет тот, который был создан компилятором GWT, как вызвано GWT-maven-plugin.

The *.nocache.js сгенерированный DevMode (когда никто не существует, сгенерированный предыдущей компиляцией GWT) содержит только необходимые биты для запуска DevMode, и в противном случае произойдет сбой с вышеупомянутой ошибкой.

ищите файл под названием <MODULE_NAME>.nocache.js на src/main/webapp/<MODULE_NAME> и удалить/переименовать его.

затем сделайте свой пакет mvn, и все "должно" быть в порядке.

эта проблема может возникнуть при запуске режима Dev в Eclipse. Затмение будет генерировать nocache.JS файл и положить его под

Я нашел ту же проблему в DevMode, если была статическая ссылка на другую страницу в приложении (т. е. myModule2.формат HTML.) Потому что ему не хватало ?ГВт.codesvr=127.0.0.1:9997 string, он был интерпретирован как статическое (уже скомпилированное) приложение GWT, которого не было, бросая код ошибки, который вы упомянули.

enter image description here

конечно, решение не использовать жестко закодированные литеральные ссылки, но пусть GWT сделает их для вас. Надеюсь, что это поможет кто-то.

обновление:

это код, который выдает эту ошибку в стандартном GWT *.nocache.js файл.

function B() {
    var b = false;
    try {
    var c = Window.location.search;
    return (c.indexOf("gwt.hosted=") != -1 
        || (c.indexOf("gwt.codesvr=") != -1
        || Window.external && Window.external.gwtOnLoad)) 
        && c.indexOf("gwt.hybrid") == -1
    } catch (a) {}
    B = function () {
    return b
    };
    return b
}
// and later, if B() returns false, show recompile error
if (!B()) {
    try {
    alert(Pb);
    return;
    }
  ...
}

таким образом, чтобы предотвратить сообщение компилятора

  • нет gwt.гибрид в URL
  • и не имеют gwt.размещенный=
  • или сделать.codesvr=
  • или окно.внешний.getOnLoad метод

Итак, в случае всплывающего окна какой-то серверный код перенаправлялся url-адрес сеанса DevMode, но не добавляет обратно параметр " codesvr=", поэтому было показано предупреждение.

вы скомпилировали источник? Это удивительно неочевидный шаг. Если вы используете eclipse, вы можете выполнить компиляцию, щелкнув красный значок панели инструментов.

вы должны запустить mvn gwt:compile дополнительно к обычным mvn clean install package, так как GWT-компиляция не является частью фазы Maven-package. Это решает раздражающую ошибку компиляции Javascript-(re).

у меня была похожая проблема. Делать mvn clean install в моем проекте GWT мне достался файл war, который при развертывании в tomcat привел к тому, что одно и то же диалоговое сообщение "модуль GWT 'mymodule' может потребоваться (повторно)скомпилировать". Я также сделал все упомянутые вещи здесь без какого-либо успеха.

делаешь mvn clean install -DskipTests=true сделал работу за меня.
Или
Делать mvn clean install без вызова сгенерированного тестового URL (sth. вот так:http://<localIp>:53701/mymoduleJUnit.JUnit/junit-standards.html?gwt.codesvr=<localIp>:53697)

тестовая фаза, очевидно, перезаписала мой изначально создано *.nocache.js через какой-то причудливый url-адрес режима разработки, тем самым упаковывая меня неправильно *.nocache.js в конце.

мой режим Dev был правильно настроен и выше решение не работает. Однако следующее решило проблему.

несколько шагов:

  1. обновить свойства проекта - > сборка развертывания с помощью развернуть УГВ проекта Maven в каталог Eclipse развертывает приложение, а не цель/проекта каталог
  2. mvn чистый пакет
  3. mvn gwt: compile
  4. в eclipse, нажмите на 'GWT Compile Project' - > Advacned -> удалить '- war src/main/webapp ' аргумент и нажмите compile.

вывод должен быть такой - Связывание в target / project-1.0-SNAPSHOT / ModuleName

... и развертывание работает нормально.

Это может относиться и ко всем другим допустимым ответам здесь: иногда вам может потребоваться просто выполнить обновление браузера hard / cache (ctrl+F5) после выполнения одного из них.