Je reçois une javax.servlet.jsp.JspException
dans l’un des fichiers jsp que mon site Web tente de restituer ( survey.jsp
). Cependant, la trace de la stack ne me donne pas la ligne spécifique dans jsp où elle échoue, mais plutôt le numéro de la ligne où elle échoue ( survey_jsp.java:787
), qui semble être le fichier JSP compilé. Où puis-je trouver de tels fichiers, afin de savoir quelle ligne lève cette exception?
Merci
EDIT: Ces fichiers résident dans le répertoire /work
si vous utilisez tomcat comme le suggère Will dans le commentaire ci-dessous.
Les fichiers JSP compilés sont disponibles par défaut dans le dossier /work
de l’environnement Tomcat. Il devrait y avoir un sous-dossier Catalina
qui, à son tour, possède un sous-dossier représentant le nom de domaine, qui devient par défaut localhost
. Il devrait également y avoir un dossier de projet contenant la hiérarchie de packages org.apache.jsp
contenant les fichiers JSP compilés.
Tomcat |-- backup |-- bin |-- conf |-- lib |-- logs |-- temp |-- webapps `-- work `-- Catalina `-- localhost `-- projectname `-- org `-- apache `-- jsp |-- survey_jsp.class `-- survey_jsp.java <--- here
Indépendamment du problème concret, il doit y avoir une partie cause racine dans la stack stacktrace de l’ JspException
qui contient généralement plus de détails sur la cause réelle du problème. Lisez un peu plus loin dans le stacktrace. A propos, savez-vous que l'insertion de code Java brut dans des fichiers JSP est considérée comme une mauvaise pratique ? Cela rend les problèmes plus difficiles à résoudre que vous rencontrez maintenant.
Si la page n’a pas été compilée, vous devriez la trouver quelque part sous
. Le chemin complet dépend de votre environnement. Si vous ne le trouvez pas, vous devez démarrer votre Tomcat en mode débogage, il conserve .java
échec de la compilation des fichiers .java
(Tomcat 7).
J’utilise Intellij
pour apprendre JavaEE et pour visualiser certaines fonctionnalités lors de la traduction de jsp en servlet, je dois également rechercher le fichier.
Je ne l’ai pas trouvé sous
. Je trouve enfin que le fichier se trouve dans le dossier ~/.IntelliJIdea15/system/tomcat/
(arborescence représentant ~/.IntelliJIdea15/system/tomcat/
)!
Name related to project name |-- conf |-- logs `-- work `-- Catalina `-- localhost `-- projectname and type `-- org `-- apache `-- jsp |-- survey_jsp.class `-- survey_jsp.java <--- here
Si vous ne le trouvez toujours pas dans le dossier personnel de Intellij, vous devrez peut-être essayer d'utiliser
find . | grep 'nameOfYourJsp_jsp.java'
dans le dossier parent approprié.
Dans mon cas, jsps compilés étaient sous
/var |--cache |-- tomcat8 |--Catalina |--localhost |--projectname |-- (etc...)
du document oracle
javax.servlet.jsp.JspException :: Une exception générique connue du moteur JSP; JspExceptions non capturé entraînera une invocation de la machine d’erreur de page.
J’ai même eu l’habitude d’obtenir ceci chaque fois que j’ai utilisé des scriplets dans mon code
mon conseil: n’utilisez pas scripltes même si cela peut sembler être un code facile à développer, mais avec tout le respect que je vous dois, c’est une grosse tête de mal à maintenir un code de scriplets. CROYEZ-MOI
C: \ Utilisateurs \ ADMIN \ eclipse-workspace.metadata.plugins \ org.eclipse.wst.server.core \ tmp0 \ work \ Catalina \ localhost \ JspDemo \ org \ apache \ jsp
changer de lien en fonction de votre nom de projet.