Je reçois un javax.servlet.jsp.JspException
dans l'un des fichiers jsp que mon site Web essaie de rendre (survey.jsp
). Cependant, la trace de la pile ne me donne pas la ligne spécifique dans jsp où elle échoue, mais plutôt le numéro de ligne où elle échoue (survey_jsp.Java:787
), qui semble être le fichier JSP compilé. Où puis-je trouver ces fichiers, afin de savoir quelle ligne lève cette exception?
Merci
EDIT: Ces fichiers vivent dans le /work
répertoire si vous utilisez Tomcat comme Will l'a suggéré dans le commentaire ci-dessous.
Les fichiers JSP compilés sont par défaut disponibles dans le /work
dossier de l'environnement Tomcat. Il devrait y avoir un sous-dossier Catalina
qui à son tour a un sous-dossier représentant le nom de domaine qui par défaut est localhost
. Il doit y avoir à son tour le dossier du projet qui à son tour contient la hiérarchie des 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
Sans rapport avec le problème concret, il devrait y avoir une partie cause première dans la trace de pile du JspException
qui contient généralement plus de détails sur la véritable cause profonde du problème. Lisez un peu plus loin dans le stacktrace. Soit dit en passant, savez-vous que mettre du code brut Java dans les fichiers JSP est considéré comme une mauvaise pratique ? Cela rend les problèmes plus difficiles à déboguer que vous rencontrez maintenant.
Si la page n'a pas été compilée, vous devriez la trouver quelque part en dessous <Tomcat>/work/*
. 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 définitivement .Java
Les fichiers n'ont pas pu être compilés (Tomcat 7).
J'utilise Intellij
pour apprendre JavaEE et afin de visualiser certaines fonctionnalités lors de la conversion de jsp en servlet, je dois également trouver le fichier.
Je ne l'ai pas trouvé ci-dessous <Tomcat_home>/work/*
. Je trouve enfin que le fichier est sous ~/.IntelliJIdea15/system/Tomcat/
dossier (arborescence affichée à partir de ~/.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 de départ d'Intellij, vous devrez peut-être essayer d'utiliser
find . | grep 'nameOfYourJsp_jsp.Java'
dans le dossier parent approprié.
ajouter un autre scénario: avec Eclipse et Tomcat pour exécuter Spring MVC: vous devriez trouver les fichiers _jsp.Java dans votre dossier d'espace de travail:
\ workspace.metadata.plugins\org.Eclipse.wst.server.core\tmp0\work\Catalina\localhost [nom du projet]\org\Apache\jsp \
Dans mon cas, les jsps compilés étaient sous
/var
|--cache
|-- Tomcat8
|--Catalina
|--localhost
|--projectname
|-- (etc...)
à partir du document Oracle
javax.servlet.jsp.JspException :: Une exception générique connue du moteur JSP; les JspExceptions non capturées entraîneront une invocation de la machinerie de la page d'erreur.
j'ai même l'habitude de l'obtenir chaque fois que j'utilisais des scriplets dans mon code
mon conseil: n'utilisez pas de scripltes même si cela peut sembler développer du code facilement mais avec tout le respect que je vous dois, c'est un gros problème de maintenir un code de scriplets. CROYEZ-MOI