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

Servlets/JSP Java Discussion :

Problème entre jsp et bean impossible de trouver la classe


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 81
    Points
    81
    Par défaut Problème entre jsp et bean impossible de trouver la classe
    Bonjour à tous,

    Voila je débute dans les JSP, et je n'arrive pas à inclure un bean dans un jsp avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:useBean id='v' scope='page' class='Voiture' />
    l'erreur retourné est :

    exception

    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP

    Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /scope.jsp
    Erreur de servlet générée:
    Voiture cannot be resolved to a type

    Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /scope.jsp
    Erreur de servlet générée:
    Voiture cannot be resolved to a type

    Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /scope.jsp
    Erreur de servlet générée:
    Voiture cannot be resolved to a type


    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

    cause mère

    org.apache.jasper.JasperException: Impossible de compiler la classe pour la JSP

    Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /scope.jsp
    Erreur de servlet générée:
    Voiture cannot be resolved to a type

    Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /scope.jsp
    Erreur de servlet générée:
    Voiture cannot be resolved to a type

    Une erreur s'est produite à la ligne: 3 dans le fichier jsp: /scope.jsp
    Erreur de servlet générée:
    Voiture cannot be resolved to a type


    org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
    org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
    org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    Au préalable j'ai :

    1) Créer un répertoire WEB-INF/classes dans mon dossier qui contient l'application.
    2) Ajouter a la variable d'environnement CLASSPATH le chemin de mon répertoire de classe.

    Mais rien a faire ca ne marche pas, j'ai également lue que le fichier web.xml n'était pas à modifier pour utiliser des beans dans des jsp.


    Comme ca ne marche pas depuis un moment j'ai aussi tester quelque chose de nouveau aujourd'hui.
    Je me suis dis que peut etre le problème venait de ma version de tomcat et de la version jsp/servlet que j'utilisais.
    Sachant que lorsqu'on installe tomcat on a des exemples de jsp utilisant des beans et voyant que ceci marche très bien, j'ai décider de recompiler un .java afin de vérifier si cela marcherait encore après et oui cela fonctionne ce qui veut dire que le problème ne vient pas de la.

    Plus étrange :

    Ici se trouve les exemples installé automatiquement par tomcat : C:\tomcat-server-5.5.20\webapps\jsp-examples

    Lorsque je test ces exemples il fonctionne sans probleme, par exemple le jsp-exemple 'date' situé dans C:\tomcat-server-5.5.20\webapps\jsp-examples\dates
    contient ca (Je n'ai laissé que la ligne importante):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <body bgcolor="white">
    <jsp:useBean id='clock' scope='page' class='dates.JspCalendar' type="dates.JspCalendar" />
    </body>
    </html>
    Lorsque je le modifie ainsi et que je test le dates.jsp il n'y a aucun probleme, en effet le répertoire :
    C:\tomcat-server-5.5.20\webapps\jsp-examples\WEB-INF\classes\dates
    contient bien un package nommé : JspCalendar avec une classe date à l'intérieur.

    Donc ce que je décide de faire est de mettre une classe Voiture dans ce répertoire et de créer un .jsp dans (C:\tomcat-server-5.5.20\webapps\jsp-examples\) qui appel cette classe comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <HTML>
    <BODY>
    <jsp:useBean id='v' scope='page' class='Voiture' />
    </BODY>
    </HTML>
    (De la meme manière que dates quoi...)
    Et je me retrouve avec l'erreur cité tout en haut...

    Je n'ai pas trouvé d'aide sur le net, j'ai cherché sur le forum et j'ai trouvé une personne qui avait le meme probleme mais pas de solution ne lui a été proposé. Ca fait un ptit moment que je bloque la dessus alors que ce n'est surement rien...

    Merci pour l'aide !

  2. #2
    Membre régulier Avatar de VinceFromBcn
    Inscrit en
    Juin 2004
    Messages
    108
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 108
    Points : 122
    Points
    122
    Par défaut
    Hello,

    Essaye ça:

    <body bgcolor="white">
    <jsp:useBean id='clock' scope='page' class='dates.Voiture' type="dates.Voiture" />
    </body>
    </html>

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 81
    Points
    81
    Par défaut
    Ma classe Voiture n'est pas dans package dates ...

  4. #4
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Tu veux une reponse rapide,

    Alors fait 3 choses,

    Vérifie que tu a bien la class voiture compilé (Voiture.class)
    Si c'est le cas fait la suite. Sinon il te faut compiler ta class Voiture.

    Met le code entier de ta classe Voiture.
    Le code entier de ta jsp.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  5. #5
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Non attend, je crois que j'ai vu d'ou venait ton erreur.

    Lorsque tu veux spécifier un bean, je crois, si mes souvenirs sont bon, que tu es obligé de mettre ta classe dans un package.
    Essaye de mettre ta classe Voiture dans un package.
    Et de mettre le nom de ton package dans ton bean.

    Exemple si ta classe voiture est dans com.testBean.

    Tu met :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <jsp:useBean id='v' class='com.testBean.Voiture' scope='page'/>
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 81
    Points
    81
    Par défaut
    J'avais essayé dans un package ca avait rien changé, mais heu... je vais réessayer...

  7. #7
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Alors c'est que ton projet est mal configuré!!

    A mon avis il ne trouve pas la class voiture, soit parce :
    • qu'elle est mal référencé

    • qu'elle n'est pas compilé

    • qu'elle n'est pas compilé au bon endroit


    Peux tu donner l'arbo de ton projet. Et le folder ou sont present tes .class?
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 135
    Points : 81
    Points
    81
    Par défaut
    Tout dabord merci maxf1 pour l'aide que tu m'as apporté.

    Pour résoudre le problème il fallait également en effet mettre le .class dans un package ou de créer un package avec la classe dedans.

    Alors dans l'ordre pour utiliser des beans il faut faire :

    1- Créer un package pour le bean ou le mettre dans un package existant.
    2- Créer un répertoire du nom du package dans :
    C:\<rep installe de tomcat>\webapps\<répertoire de l'application>\WEB-INF\classes\

    Pour créer un package qui s'appelerai par exemple world, il suffit de mettre en haut .java "package world;" tout simplement, puis de compilé le fichier en .class.

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

Discussions similaires

  1. Erreur*: Impossible de trouver la classe Login principale
    Par chimouch dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 05/07/2013, 11h19
  2. Réponses: 3
    Dernier message: 11/12/2009, 14h26
  3. Réponses: 4
    Dernier message: 15/07/2008, 19h17
  4. Impossible de trouver la Classe URI
    Par TOPGUN89 dans le forum Websphere
    Réponses: 1
    Dernier message: 29/09/2006, 09h30

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