Модуль GWT может потребоваться (повторно) скомпилировать REDUX
При запуске в скомпилированном режиме я получаю этот ужасный модуль "mymodule" модуля GWT, возможно, потребуется (re) скомпилировать диалоговое сообщение.
Я собрал список вещей, которые другие предложили попробовать, когда данное сообщение об ошибке GWT запускается в скомпилированном режиме. Я открыл файл WAR, созданный maven, и все файлы находятся в нужном месте. Я подтвердил это против другого проекта GWT maven, который не получил эту ошибку. Однако ни одна из приведенных ниже рекомендаций не исправила проблему. Я также не смог определить, какая разница отсутствует между этими двумя проектами - той, которая работает, и моей, которая не будет работать в скомпилированном режиме.
Что еще я могу попробовать?
Ответы
Ответ 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) после выполнения одного из них.