J'essaie de convertir une ancienne application héritée de JavaEE en spring-boot-2.

Comment servez-vous réellement de vieilles pages JSP sans contrôleur?

J'ai cherché ça encore et encore sur Google maintenant, et aussi étrange que cela puisse paraître, je ne peux pas le comprendre ou trouver un exemple simple qui fonctionne réellement. Je n'arrête pas de recevoir "404 Not Found" en essayant d'accéder au JSP.

J'utilise maven, l'empaquetage en tant que fichier WAR et je vais bien l'exécuter comme «explosé» (ce qui semble le meilleur pari?), Je n'ai toujours pas été en mesure de le faire fonctionner.

Je ne comprends pas comment cela peut être si difficile, n'est-il plus POSSIBLE de le faire dans spring-boot-2?

Tout le monde peut me montrer un exemple concret? Ou une instruction détaillée comment faire?

MODIFIER : c'est ce que disent les documents du printemps. Limitations JSP:

"Avec Jetty et Tomcat, cela devrait fonctionner si vous utilisez un emballage de guerre." De: https://docs.spring.io/spring-boot / docs / current / reference / htmlsingle /

Mais exactement comment ? C'est ce que j'essaie de comprendre ...

0
Rop 15 sept. 2020 à 09:34

2 réponses

Meilleure réponse

Le problème est que Spring Boot prend le contrôle du monde par défaut, c'est-à-dire qu'il enregistre le DispatcherServlet avec un mappage de servlet de /, augmentant ainsi le traitement des conteneurs de servlet des fichiers *.jsp.

Pour permettre au conteneur de servlet de traiter les JSP normalement, nous devons nous assurer que le Spring DispatcherServlet ne les intercepte pas, par exemple en s'assurant qu'il ne traite que les demandes avec certains suffixes, ou avec certains préfixes.

Par exemple. si aucun chemin JSP ne commence par /api/, alors nous pouvons l'utiliser pour DispatcherServlet, c'est-à-dire que toute requête pour /api/* sera gérée par Spring Boot, et toute autre requête sera gérée par le conteneur de servlet.

Pour ce faire, ajoutez ce qui suit au fichier application.properties:

spring.mvc.servlet.path = /api
2
Andreas 15 sept. 2020 à 07:37

Avez-vous déclaré le mappage de servlet quelque part? Je crois que tu as besoin d'un point d'entrée sinon c'est juste un fichier mort pointant vers nulle part

-1
Tiago Yamashita 15 sept. 2020 à 07:02