web-dev-qa-db-fra.com

Où sont compilés les fichiers JSP Java (* __ jsp.Java)?

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.

26
Sam

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.

65
BalusC

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).

5
home

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é.

4
Tony

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 \

cela dépend aussi de votre configuration dans Tomcat: enter image description here

1
carter Liu

Dans mon cas, les jsps compilés étaient sous

 /var    
   |--cache    
       |-- Tomcat8    
            |--Catalina
                   |--localhost
                          |--projectname
                                 |-- (etc...)
1
pkaramol

à 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

0
Mateen