IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

[JSP][Tomcat] COmment choisir la place des fichiers .class?


Sujet :

Tomcat et TomEE Java

  1. #1
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut [JSP][Tomcat] COmment choisir la place des fichiers .class?
    Bonjour,

    j'ai déjà réussi à faire une page JSP pour faire mes premiers pas et maintenant j'ai créé une classe pour programmer plus proprement
    le problème est que quad je mets la classe dans le réertori "WEB-INF/classes" ca ne le prend pas en compte et je recois le message suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    G:\Tomcat\work\Catalina\localhost\tomcat-docs\org\apache\jsp\test_jsp.java:53: cannot resolve symbol
    mon fichier JSP est le suivant : "F:\eclipse\jsp\test.jsp" et dans ce JSP j'utilise la classe "Cpt"

    la seule solution que j'ai trouvé c'est de mettre le ficheir Cpt dans le répertoire "G:\Tomcat\work\Catalina\localhost\tomcat-docs\org\apache\jsp\" mais j'aimerais bien stocker mes ficheirs ensemble et surtout je ne comprend pas pourquoi tout ce passe dans ce répertoire

    est ceux que vous avez quelque chose à me proposer ou alors si vous aviez une autre méthode de travail je suis preneur :-)

  2. #2
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    tu ne dois pas plasser les js compilées dans le /classes ... seulement tes classes a toi !

    les jsp seront compilées par le moteur de servlets, ou laors ils faut les placer dans le repertoire work (pour tomcat)

  3. #3
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    désolé je me suis mal exprimé c'est bien le fichier Cpt.java que je doit mettre dans le répertoire "G:\Tomcat\work\Catalina..." sinon il n'est pas pris en compte

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    en fait je viens de lire tous les tutoriels qui parlent de JSP et aucun parlent de jsp et de classes

    j'utilise peut être une mauvaise méthode de développement ?
    il vaut mieux passer par un servlet ?

  5. #5
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    c plus un pb de classpath à mon avis.

    Dans ta JSP tu fais référence à une classe mais tu n'en n'importe pas le type via une directive <% page import .....%> en début de JSP.

    Du coup la classe n'est pas trouvé.

    Sinon toutes les classes doivent aller ds le repertoire WEB-INF/classes/tonpackage/tonsouspackage/

    @+

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    merci de te pencher sur mon problème :-)

    de quel classpath parle tu ? le fichier .classpath ?
    si je mets mon fichier Cpt.java dans le répertoire "WEB-INF/classes" il suffit que je fasse "page import="Cpt"", non ?

  7. #7
    Membre expérimenté
    Avatar de RanDomX
    Profil pro
    sans
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Points : 1 407
    Points
    1 407
    Par défaut
    Citation Envoyé par mathix
    si je mets mon fichier Cpt.java dans le répertoire "WEB-INF/classes" il suffit que je fasse "page import="Cpt"", non
    oui exactement.

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    je recois l'erreur suivante pour la ligne "import"

    voila le fichier .classpath que j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
        <classpathentry kind="src" path=""/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
        <classpathentry kind="output" path=""/>
    </classpath>
    je doit y mettre quoi ?

    j'ai fait un autre test : mettre la classe Cpt dans un package "test"
    donc j'ai changé ca :
    - rajout de "package test;" dans le fichier Cpt.java
    - j'ai déplacer le fichier Cpt.java dans le dossier WEB-INF\classes\test
    - dans le jsp j'ai mis "<%@ page import="test.*"%>"

    résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    package test does not exist

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 46
    Points : 56
    Points
    56
    Par défaut
    Rassures-moi, tu as bien compilé ton fichier Cpt.java ?

    Quant au fichier .classpath, je pense que c'est une fausse piste. Ca ressemble à un fichier properties propre à Eclipse...
    Tomcat monte tout seul dans son classpath toutes les classes du dir WEB-INF/classes ainsi que toutes celles mise en jar et posées dans le dir WEB-INF/lib

    Le classpath, c'est THE variable qui indique à la jvm où elle peut chercher les classes.

  10. #10
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    oui je viens de voir ca
    - j'ai déplacer le fichier Cpt.java dans le dossier WEB-INF\classes\test
    tu veux bien dire Cpt.class ???

  11. #11
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par JefDeBourges
    Rassures-moi, tu as bien compilé ton fichier Cpt.java ?
    alors là j'y comprends plus rien !!!!! je l'ai compilé et ca marche!!!!
    mais je ne clique pas sur "résolu" tant que je n'ai pas compris na !

    en fait ce qui me gène c'est que lunatix m'as dit exactement l'inverse tout en haut dans son 1er message donc je trouvais ca normal

    est ce que tu peut m'expliquer ? ou si tu as un lien vers un tutoriel qui explique ca ...
    étant donné que je suis débutant total n'hésite pas à me donner des liens vers des tutoriels qui parlent des choses de base

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 46
    Points : 56
    Points
    56
    Par défaut
    Lunatix (malgré son pseudo) n'était pas dans la lune
    Il t'a dit de ne pas mettre les JSP compilées dans le WEB-INF/classes

    En mode "exploitation", on cherche à pré-compiler les JSP pour que les temps de réponse au 1er accès à la JSP ne soient pas dégradés.
    Ok, ca remarque était prématurée vu ta question...

    Il t'a aussi dit d'y mettre tes classes.
    Et toi tu as compris "le fichier source de ma classe" d'où le mistake.

    Pour ton info, Tomcat est un serveur d'application.
    Sa fonctionnalité est de traiter des requêtes pour les transmettre aux servlets.
    Bien sûr, il sait "compiler à la volée" des JSP pour les transformer en servlet, mais il ne sait pas compiler à la volée des sources java.

    Et donc tu dois mettre les classes (fichiers .class) dans le dir WEB-INF/classes en y respectant l'arborescence des packages.
    Et si tu veux regrouper tes classes en jar (ou utiliser des jars d'autres personnes), tu dois les poser dans le dir WEB-INF/lib

  13. #13
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    OK merci pour toutes ces explications (j'ai aussi vu le lien que tu as mis dans un autre sujet, j'y irais dés que le site de sun refonctionne)

    il y un truc qui me dérange maintenant, quand je modifie une classe je doit relancer tomcat pour qu'il tienne compte des modifications ? il n'y a pas de possibilités de contourner cela ?
    peut etre en travaillant avec des vraies servlets c'est possible ?

    [EDIT]
    correction : je ne suis pas d'accord avec l'histoire de la compilation de java parce que un jsp est transformé en servlet (.java) puis compilé donc ca veut dire que tomcat sait compiler des .java ... (affaire à suivre)
    [/EDIT]

  14. #14
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    ok, je reprends et j'essaye de faire simple :-)
    (note je suis joignable sur icq/aim/jabber le soir mathix)

    bon :
    quand on fait une appli web java, on fait en général des jsp, et des servlets. (ok, sur le fond c'est la meme chose)

    les servlets seront compilées (par le developpeur) a l'avance et placées dans le WEB-INF/classes.

    les jsp, sont elles transformées en servlets et compilées a la volée par tomcat, afin de donner aux developpeurs java la souplesse d'un php pour l'edition des pages html.

    ensuite y'a des finesses (des fois on precompile quand meme les jsp pour la mise en prod par exemple).

  15. #15
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    (allez zou dans ma liste jabber :-) )

    et voila j'ai de nouveau parlé trop vite
    il n'y aucunement besoin de redémarer tomcat aprés compilation donc ca me suffit très bien comme méthode de développement et donc RESOLU (yehahh)

  16. #16
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    Citation Envoyé par mathix
    et voila j'ai de nouveau parlé trop vite
    il n'y aucunement besoin de redémarer tomcat aprés compilation donc ca me suffit très bien comme méthode de développement et donc RESOLU (yehahh)
    et pour info ca ne marche que avec un jdk 1.4 ! pas avant

  17. #17
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    ok c'est noté

    merci RanDomX et lunatix (lol on a tous des pseudos en -ix)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/12/2007, 00h43
  2. ShellListView : comment récupérer les noms des fichiers?
    Par Lolo1988 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 11/12/2005, 23h19
  3. [Delphi 2005] Comment parcourir la liste des fichiers ?
    Par babyface dans le forum Langage
    Réponses: 2
    Dernier message: 30/06/2005, 11h01
  4. Comment changer le répertoire des fichiers temporaires ?
    Par devdev dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 01/09/2004, 14h18
  5. [Tomcat][Servlet] créer et acceder à des fichier du localhos
    Par djodjo dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/01/2004, 17h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo