Spring Boot ne sert pas les ressources statiques
Rédigé par gorki 1 commentaireLe problème :
Avec une stack JHipster, spring-boot n'affiche pas les ressources statiques en mode développement.
Ddonc par exemple pas de index.html...
Pour autant si on lance la commande avec le war serverless (cf spring-boot-maven-plugin), ça fonctionne.
Je suis sous Intellij, à l'évidence quelque chose manque dans le lancement de la tâche Intellij spring-boot
L'architecture est mavenisé donc le root contexte est sous : src/main/webapp
Cependant spring-boot semble chercher ses ressources ailleurs : cf la documentation
Par quelle magie spring-boot doit-il trouver ses ressources dans src/main/webapp ??
Solution :
Beaucoup de recherches, de debug et autre (il y a un peu de spring-secu dans le lot). Au final les services jhipster classiques (health, dump, etc...) fonctionnent mais toujours pas de ressources statiques.
Vérification :
- de la tâche de lancement Intellij, elle semble correcte.
- des classpaths (on met src/main/webapp dans le classpath, on l'enlève)
- des paramètres de lancement (profil Spring et autre)
Au final la mise en debug m'a permis de trouver un log perdu parmi les autres :
Tiens donc le Tomcat embarqué de spring-boot a ses propres chemins de recherches... (pas tout à fait décrit dans la doc Spring ci-dessus).
Breakpoint, watch, et paf, le chemin vers src/main/webapp en absolu n'est pas le bon.
Tout ça parce que le répertoire de travail de ma tâche spring-boot sous Intellij n'était pas fixé. Comment Intellij détermine cette valeur ? Mystère. En mettant donc le répertoire de travail égal au répertoire qui contient le src/main/webapp, tout roule (ici le répertoire de travail serait : /home/user/projets/monprojet/webportal.
On retrouve le log :
Eclairé aussi par ce lien