Où sont compilés JSP Java (*jsp.java) des fichiers?

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 de tels fichiers, pour que je sache quelle ligne jette cette exception?

Merci

EDIT: ces fichiers vivez dans le répertoire /work si vous utilisez tomcat comme suggéré dans le commentaire ci-dessous.

21
demandé sur BalusC 2011-07-26 20:56:15

6 réponses

les fichiers JSP compilés sont par défaut disponibles dans le dossier /work 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 à localhost . Il devrait y avoir à son tour le dossier de projet qui à son tour contient la hiérarchie de paquets org.apache.jsp avec en elle 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 cause profonde partie dans la chaîne de la JspException qui contient généralement plus de détails sur la cause profonde réelle du problème. Lisez un peu plus loin dans le stacktrace. Par ailleurs, savez-vous que mettre du code Java brut dans les fichiers JSP est considéré comme une mauvaise pratique ? Il rend les problèmes plus difficiles à déboguer que vous rencontrez maintenant.

55
répondu BalusC 2017-05-23 10:31:14

si la page n'a pas été compilée, vous devez la trouver quelque part en dessous de <tomcat>/work/* . Le chemin complet dépend de votre environnement. Si vous ne pouvez pas le trouver là, vous devriez démarrer votre Tomcat en mode debug, il conserve definitly .java les fichiers qui n'ont pas été compilés (Tomcat 7).

5
répondu home 2011-07-26 17:08:26

j'utilise Intellij pour apprendre le JavaEE et pour visualiser certaines fonctionnalités lorsque jsp traduit en servlet, je dois aussi trouver le fichier.

Je ne l'ai pas trouvé sous <tomcat_home>/work/* . Je trouve enfin que le fichier est sous le dossier ~/.IntelliJIdea15/system/tomcat/ (arborescence montrant à 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 pouvez toujours pas le trouver sous le dossier d'accueil D'Intellij, vous pouvez essayer d'utiliser

find . | grep 'nameOfYourJsp_jsp.java'

dans le dossier parent approprié.

3
répondu Tony 2015-12-29 08:17:15

dans mon cas, les JSP compilés étaient sous

 /var    
   |--cache    
       |-- tomcat8    
            |--Catalina
                   |--localhost
                          |--projectname
                                 |-- (etc...)
1
répondu pkaramol 2016-10-07 11:32:15

du document oracle

javax.servlet.JSP.JspException :: une exception Générique connue du moteur JSP; les JspExceptions non récupérées donneront lieu à une invocation de la machine errorpage.

j'ai même utilisé pour obtenir ce chaque fois que j'ai utilisé scriplets dans mon code

mon conseil : n'utilisez pas scripltes même s'il semble développer du code facile, mais avec tout le respect dû, c'est une grosse tête - ache de maintenir un code scriplets. FAITES-MOI CONFIANCE

0
répondu Mateen 2014-02-03 05:38:04

C:\Users\ADMIN\eclipse-workspace.métadonnées.plugins\org.Eclipse.wst.serveur.core\tmp0\work\Catalina\localhost\JspDemo\org\apache\jsp

changer le lien selon le nom du projet.

-4
répondu Rajeev Ranjan 2018-04-26 11:23:48