Lorsque je travaille en mode compilé, le module «mymodule» redouté de GWT peut nécessiter un message de dialogue (re) compilé.
J'ai compilé une liste de choses que d'autres ont suggéré d'essayer lorsque GWT s'exécutant en mode compilé reçoit ce message d'erreur. J'ai ouvert le fichier WAR créé par maven et tous les fichiers sont au bon endroit. Je l'ai confirmé contre un autre projet mWG de GWT qui ne rencontre pas cette erreur. Cependant, aucune des suggestions ci-dessous n'a corrigé le problème. Je n'ai pas non plus été en mesure d'identifier la différence qui manque entre ces deux projets - celui qui fonctionne et le mien qui ne fonctionnera pas en mode compilé.
Que puis-je essayer?
Avez-vous démarré le DevMode en utilisant votre src/main/webapp
comme "dossier de guerre"? ou en d'autres termes, y a-t-il un *.nocache.js
dans votre src/main/webapp
? Dans ce cas, ce fichier écrasera celui produit par le compilateur GWT, appelé par le plugin gwt-maven.
Le *.nocache.js
généré par le DevMode (lorsqu'il n'en existe aucun, généré par une compilation précédente de GWT) contient uniquement les bits nécessaires au lancement du DevMode et échouera sinon avec l'erreur susmentionnée.
Recherchez un fichier appelé <MODULE_NAME>.nocache.js
dans src/main/webapp/<MODULE_NAME>
et supprimez-le/renommez-le.
Ensuite, faites votre paquet mvn et tout devrait bien se passer.
Ce problème peut se produire lorsque vous exécutez le mode Dev dans Eclipse. Eclipse générera le fichier nocache.js et le placera dans le répertoire src/main/webapp
.
Ensuite, lorsque vous exécutez mvn pacakge
, le plug-in maven crée le déploiement nocache.js
et le place au bon endroit. Toutefois, lorsqu'il empaquete les fichiers dans un fichier war, il redéfinit le droit de déploiement nocache.js
avec celui créé par Eclipse.
J'ai trouvé le même problème dans DevMode s'il y avait un lien statique vers une autre page de l'application (c'est-à-dire monModule2.html). Comme il manquait la chaîne ? Gwt.codesvr = 127.0.0.1: 9997, il a été interprété comme une application GWT statique (déjà compilée), ce qui n'était pas le cas, en lançant le code d'erreur que vous avez mentionné.
Bien entendu, la solution ne consiste pas à utiliser des liens littéraux codés en dur, mais à laisser GWT les créer pour vous. J'espère que ça aide quelqu'un.
METTRE À JOUR:
C'est le code qui renvoie cette erreur dans le fichier GWT * .nocache.js standard.
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;
}
...
}
Ainsi, pour empêcher le message du compilateur
Ainsi, dans le cas de la fenêtre contextuelle, certains codes de serveur redirigeaient une URL de session DevMode, mais ne rajoutaient pas le paramètre "codesvr =". L'avertissement était donc affiché.
Vous devez exécuter mvn gwt:compile
en plus du mvn clean install package
habituel, car la compilation GWT ne fait PAS partie de la phase de paquetages maven . Ceci résout l'erreur de compilation/compilation de Javascript.
Avez-vous compilé la source? C'est une étape étonnamment peu évidente. Si vous utilisez Eclipse, vous pouvez compiler en cliquant sur l'icône rouge de la boîte à outils.
Mon mode Dev était correctement configuré et la solution ci-dessus ne fonctionnait pas. La suite a résolu le problème cependant.
Plusieurs étapes:
La sortie devrait être comme ceci - Lien dans target/project-1.0-SNAPSHOT/ModuleName
... et le déploiement fonctionne bien.
J'avais un problème similaire. Faire mvn clean install
sur mon projet GWT m'a fourni un fichier war qui, après son déploiement dans Tomcat, a donné le même message de dialogue "Module GWT 'mymodule' nécessitant d'être (re) compilé". J'ai également fait tous les trucs mentionnés ici sans aucun succès.
Faire mvn clean install -DskipTests=true
a fait le travail pour moi.
OU
Faire mvn clean install
sans appeler l'URL de test générée (sth. Comme ceci: http://<localIp>:53701/mymoduleJUnit.JUnit/junit-standards.html?gwt.codesvr=<localIp>:53697
)
La phase de test a évidemment écrasé le *.nocache.js
initialement créé via une url de mode de développement sophistiquée, me plaçant ainsi à la place d'un *.nocache.js
erroné.
Cela pourrait également s'appliquer à toutes les autres réponses valides: parfois, vous devrez peut-être simplement actualiser votre navigateur/cache (ctrl + F5) après avoir suivi l'une d'entre elles.