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 :

Méthode non définie


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Points : 30
    Points
    30
    Par défaut Méthode non définie
    Bonjour,

    Débutant en java, je travaille sous eclipse, j'ai un fichier jsp avec une classe dans un package situé sous le reprtoire WEB-INF/classes.
    Dans ma page JSP je fait l'import de mon package, jusque là tout va bien, par contre lorsque dans ma page JSP j'appelle une méthode déclarée dans mon fichier .class contenu dans le package j'ai un message d'erreur me disant que la méthode en question n'est pas définie.

    Donc ma question est la suivante : Ai je le droit de faire cela ? si oui d'ou peut venir l'erreur, si non, doit je faire un import de fichier plutôt que celui d'une classe ?

    Le contenu de la classe est basique, il ne contient qu'une méthode permettant la connexion à une base de données et retourne un Statement. Eclipse me confirme que ma classe ne contient pas d'erreur.

    Dans mon JSP la ligne qui pose problème est la ligne en rouge :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Statement Mon_etat = null;
    Mon_etat = connexion();
    ...

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    J'ai résolu le problème en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon_etat = connexions.connexionJDBC.connexion();
    C'est à dire que j'ai du rajouter le nom du package puis celui de la classe avant la méthode.
    Est-ce normal ou y a t'il un moyen d'éviter cela ?

  3. #3
    Membre averti Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Points : 352
    Points
    352
    Par défaut
    Tout d'abord tu devrais poster au le code de ta classe importée et de la JSP, ainsi que le message d'erreur.

    Mais arrêtons nous sur la ligne qui te pose problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon_etat = connexion();
    Il ne faut pas oublier qu'à l'exécution, une JSP n'est rien d'autre qu'une servlet. La seule possibilité pour que le compilateur valide cette instruction est que la méthode connexion soit une méthode de la JSP (traduite en servlet), donc une méthode que tu aurais déclarée par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%!public Statement connexion() {...}%>
    , car elle ne fait pas partie des méthodes héritées de HttpServlet, ni de celles rajoutées par le conteneur.

    En Java tout (pour simplifier) est objet, et une méthode est toujours membre d'une classe. Ce qui signifie que tu n'a que trois possibilités lorsque tu fais un appel de méthodes:
    1. la méthode appelée est membre de ta classe, et dans ce cas ta ligne ne pose pas de problème du point de vue de ce concept.
    2. la méthode appelée est un membre statique d'une classe; dans ce cas pour appeler la méthode, tu dois préfixer son nom de celui de la classe en question: 3. la méthode appelée est un membre non statique d'une classe; dans ce cas pour appeler la méthode, tu dois préfixer son nom de celui d'une instance déclarée de la classe en question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    instanceDeMaClasse.connexion();
    .
    Cela dit, Si connexion() est censée effectuer une connexion à une base de données) je te déconseille de déclarer cette méthode dans ta JSP ou dans n'importe quelle autre servlet. Tu peux créer la connexion dans une (et une seule) classe et en faire un attribut (de portée contexte ou session de préférence), mais cela dépend après des exigences de ton application.

  4. #4
    Membre averti Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Points : 352
    Points
    352
    Par défaut
    Mon post arrive avec un peu de retard, mais à la question
    Est-ce normal ou y a t'il un moyen d'éviter cela ?
    tu y trouveras la réponse.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    Merci de ton aide, effectivement la méthode est déclarée en statique dans la classe et j'ai changé le code en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mon_etat = connexionJDBC.connexion();
    connexionJDBC étant le nom de la classe et cela fonctionne.

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

Discussions similaires

  1. [XL-2003] Appel d'une méthode, bloc with non défini
    Par Celes_Vongola dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/12/2013, 10h22
  2. Méthode non définie
    Par sducos81 dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 20/08/2010, 20h39
  3. accès à la méthode non définie add item
    Par john123 dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 26/03/2009, 14h09
  4. méthodes non définie
    Par amazircool dans le forum Langage
    Réponses: 4
    Dernier message: 13/01/2008, 02h50
  5. [RAR] Fonction rar_open non définie
    Par laulau75 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 11/11/2005, 12h19

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