59 votes

GWT module peut avoir besoin d'être (re)compilé REDUX

Lors de l'exécution en mode compilé, j'obtiens cette redoutable GWT Module mymodule " est peut-être en (re)compilé boîte de dialogue de message.

J'ai compilé une liste des choses que d'autres ont suggéré d'essayer quand ce message d'erreur en GWT cours d'exécution en mode compilé. J'ai ouvert le fichier WAR créé par maven et tous les fichiers sont au bon endroit. J'ai confirmé cette contre un autre GWT projet maven que ne peut pas faire cette erreur. Cependant, aucune des solutions ci-dessous ont corrigé le problème. Je n'ai pas été en mesure d'identifier ce que la différence est manquant entre ces deux projets, l'un qui fonctionne, et la mienne qui ne seront pas exécutés en mode compilé.

Quoi d'autre puis-je essayer?

53voto

Thomas Broyer Points 45499

Avez-vous commencé le DevMode à l'aide de votre src/main/webapp que la "guerre" dossier"? ou en d'autres termes, est-il un *.nocache.js votre src/main/webapp? Dans ce cas, ce fichier écrasera celle produite par le compilateur GWT comme appelé par le gwt-maven-plugin.

L' *.nocache.js générés par la structure DevMode (quand personne n'existe, généré par une précédente compilation GWT) ne contient que ce qui est nécessaire pour lancer le DevMode, et autrement échouer avec l'erreur ci-dessus.

16voto

Adam Davies Points 745

Recherchez un fichier appelé <MODULE_NAME>.nocache.js en src/main/webapp/<MODULE_NAME> et de supprimer/renommer.

Ensuite, faites votre mvn package et de tous "devrait" être fine.

Ce problème peut se produire lorsque vous exécutez Dev mode dans Eclipse. Eclipse va générer le nocache.js fichier et le mettre sous l' src/main/webapp répertoire.

Ensuite, lorsque vous exécutez mvn pacakge, le plugin maven pour créer le déploiement nocache.js et la met dans le bon endroit, mais alors quand il fichiers packages dans une guerre, il alors plus de droits, c'est le déploiement nocache.js avec une Eclipse créé - la poisse!

5voto

Joseph Lust Points 4961

J'ai trouvé le même problème dans DevMode si il y avait un lien statique vers une autre page de l'application (c'est à dire myModule2.html). Parce qu'il n'avait pas la ?gwt.codesvr=127.0.0.1:9997 chaîne, elle a été interprétée comme une statique (déjà compilé) GWT application, qu'il n'était pas, en jetant le code d'erreur que vous avez mentionné.

enter image description here

Bien sûr, la solution est de ne pas utiliser codé en dur de liens littérale, mais laissez-GWT faire pour vous. Espérons que l'aide à quelqu'un.

Mise à JOUR:

C'est le code qui génère cette erreur dans la norme GWT *.nocache.js fichier.

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 prévenir le compilateur message

  • n'ont pas de gwt.hybride dans l'URL
  • ET N'ont pas de gwt.hébergé=
  • OU obtenir.codesvr=
  • OU d'une Fenêtre.externe.getOnLoad méthode

Ainsi, dans le cas de la popup, un serveur de code de réorienter une structure DevMode session url, mais pas à rajouter la "codesvr=" paramètre, d'où l'avertissement a été montré.

2voto

Riley Lark Points 11212

Avez-vous compilé les sources? C'est une surprise de la non-évidence. Si vous utilisez eclipse, vous pouvez compiler en cliquant sur le rouge icône de boîte à outils.

2voto

ifischer Points 4726

Vous devez l'exécuter en mvn gwt:compile en plus de l'habituel mvn clean install package, comme le GWT-compilation n'est PAS une partie de l'maven-package-phase. Cela résout le ennuyeux Javascript-(re)compilation d'erreur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X