Подтвердить что ты не робот

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Эта проблема может возникнуть при запуске режима Dev в Eclipse. Eclipse создаст файл nocache.js и поместит его в каталог src/main/webapp.

Затем, когда вы запускаете mvn pacakge, плагин maven создает развертывание nocache.js и помещает его в нужное место, но затем, когда он упаковывает файлы в войну, он перевыполняет его развертывание nocache.js с помощью одного Eclipse created - bummer!

Ответ 3

Я нашел ту же проблему в DevMode, если была статическая ссылка на другую страницу в приложении (то есть myModule2.html). Поскольку в нем не было строки gwt.codesvr = 127.0.0.1: 9997, оно интерпретировалось как статическое (уже скомпилированное) приложение GWT, которое оно не было, и выбрасывал код ошибки, о котором вы говорили.

enter image description here

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

UPDATE:

Это код, который вызывает эту ошибку в стандартном файле 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.hybrid в URL
  • И не иметь gwt.hosted =
  • ИЛИ get.codesvr =
  • ИЛИ метод Window.external.getOnLoad

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

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

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

Ответ 7

Режим My Dev был правильно настроен, и выше решение не сработало. Однако после этого проблема решена.

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

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

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

Ответ 8

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