GWT et la fameuse erreur « GWT module may need to be (re)compiled »…

Ah elle m’en aura fait perdre du temps cette erreur avant que je trouve la source du problème!

Cette erreur est assez courante lorsque l’on passe du mode hosted à un build sous forme de war dans un dossier target par exemple. Explications…

Si vous avez un projet GWT créé avec l’archetype Maven GWT (ce que je recommande fortement, voir ce tuto pour plus d’infos : maven & gwt), vous devriez avoir une structure de projet comme celle-ci :

Arborescence d'un projet GWT avec Maven

Arborescence d’un projet GWT avec Maven

Il vous est sûrement arrivé (après avoir tranquillement builder votre application) de déployer le war sur votre serveur et de tomber sur l’erreur : « GWT module may need to be (re)compiled ».. Outch!

Pas de problème!

Si vous utilisiez le mode hosted pour tester votre application, cela provient sûrement du fichier JavaScript <ModuleName>.nocache.js. En effet, si vous utilisez le mode hosted, GWT ne compile pas complètement le projet et génère un fichier JavaScript « hybride » dans le répertoire src/main/webapp/<ModuleName>/ pour vous permettre de tester votre application sans avoir à recommencer cette longue étape de la compilation..

Cependant, au moment du build, ou tous les fichiers nécessaires sont importés dans le répertoire target pour la génération du war, ce fichier pose problème : il overwrite le bon fichier JavaScript <ModuleName>.nocache.js à la génération du war. Ainsi le fichier JavaScript ne correspond pas et l’erreur précédente est générée.

LA SOLUTION : quitter le mode hosted, renommer ou même supprimer le fichier <ModuleName>.nocache.js du répertoire src/main/webapp/<ModuleName>/ et ensuite démarrer le build. Là vous obtiendrez un bon war fonctionnel 😉

2 thoughts on “GWT et la fameuse erreur « GWT module may need to be (re)compiled »…

  1. Slt et un grd merci pour le post.
    J’ ai neanmoins encore un problème. je ne comprends pas exactement qd il faut supprimer le fichier en question. j’ ai un projet GWt simple et et fichier ant qui compile et deploie automatiquement. comment je fais car lorque je supprime le fichier j’ ai rien de nouveau. Merci

Laisser un commentaire