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 :

Utilisation de la classe Méthod et de la méthode Invoke


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 68
    Points : 42
    Points
    42
    Par défaut Utilisation de la classe Méthod et de la méthode Invoke
    Bonjour,


    je suis en train d'écrire un programme de Généalogie dans la technologie J2EE

    Pour cela, j'utilise le java 2 Plateforme entreprise édition 1.4 et J2SE 1.4.2, et JONAS 4.10.7


    Pour l'affichage des pages, et éviter un code spaghetti, je voudrais une SERVLET générique paramétrée par les formulaires dans les pages JSP et une sorte de table de décision.

    Pour réaliser cela, j'ai besoin d'appeler une méthode d'une instance de classe juste à partir de son nom

    Aussi, j'essaie la classe Method et sa méthode Invoke

    L'éxecution se plante par l'exception
    java.lang.IllegalArgumentException: argument type mismatch

    Après bien des essais, je me tourne vers vous, si quelqu'un avait une idée


    Cordialement,
    Gilbert Peche

    la trace de l'éxecution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    2010-04-12 09:38:58,686 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique 0 :  
    2010-04-12 09:38:58,686 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique 0.2 :  
    2010-04-12 09:38:58,686 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique 0.3 :  
    2010-04-12 09:38:58,795 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique 1 :  ListeArbres
    2010-04-12 09:38:58,795 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique 2:  ListeArbres
    2010-04-12 09:38:58,811 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique 2.2:  genealogie.servlet.etapes.Etape@473996
    2010-04-12 09:38:58,811 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique 2.2:  genealogie.servlet.etapes.Etape@15bd8f
    2010-04-12 09:38:58,811 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique3 :  Etape_1
    2010-04-12 09:38:58,811 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique4 :  ListeArbres
    2010-04-12 09:38:58,811 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique5 :  genealogie.servlet.actions.ListeArbres@bf8cf5
    2010-04-12 09:39:03,085 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique 0 :  
    2010-04-12 09:39:03,101 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique 0.2 :  
    2010-04-12 09:39:03,101 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique 0.3 :  
    2010-04-12 09:39:03,101 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique 1 :  ListeArbres
    2010-04-12 09:39:03,101 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique 2:  ListeArbres
    2010-04-12 09:39:03,116 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique 2.2:  genealogie.servlet.etapes.Etape@473996
    2010-04-12 09:39:03,116 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique 2.2:  genealogie.servlet.etapes.Etape@15bd8f
    2010-04-12 09:39:03,116 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique3 :  Etape_1
    2010-04-12 09:39:03,132 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique4 :  ListeArbres
    2010-04-12 09:39:03,132 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique5 :  genealogie.servlet.actions.ListeArbres@bf8cf5
    2010-04-12 09:39:04,770 : FINEST : RMI TCP Connection(13)-192.168.1.10 : DAO.select :    debug sql!Select NumeroArbre From Arbres where lister = yes!
    2010-04-12 09:39:04,770 : FINEST : RMI TCP Connection(15)-192.168.1.10 : DAO.select :    debug sql!Select NumeroArbre From Arbres where lister = yes!
    2010-04-12 09:39:05,800 : FINEST : RMI TCP Connection(15)-192.168.1.10 : DAO.setArgumentsSelect :    debug mauvaise fonction
    2010-04-12 09:39:05,800 : FINEST : RMI TCP Connection(13)-192.168.1.10 : DAO.setArgumentsSelect :    debug mauvaise fonction
    2010-04-12 09:39:05,940 : FINEST : RMI TCP Connection(13)-192.168.1.10 : DAO.select :    debug sql!Select NomArbre, lister From Arbres where NumeroArbre = ?!
    2010-04-12 09:39:05,956 : FINEST : RMI TCP Connection(13)-192.168.1.10 : DAO.select :    debug sql!Select NomArbre, lister From Arbres where NumeroArbre = ?!
    2010-04-12 09:39:05,971 : FINEST : RMI TCP Connection(13)-192.168.1.10 : DAO.select :    debug sql!Select NomArbre, lister From Arbres where NumeroArbre = ?!
    2010-04-12 09:39:05,987 : FINEST : RMI TCP Connection(13)-192.168.1.10 : DAO.select :    debug sql!Select NomArbre, lister From Arbres where NumeroArbre = ?!
    2010-04-12 09:39:05,987 : FINEST : RMI TCP Connection(15)-192.168.1.10 : DAO.select :    debug sql!Select NomArbre, lister From Arbres where NumeroArbre = ?!
    2010-04-12 09:39:06,002 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique6 :  empiler
    2010-04-12 09:39:06,002 : FINEST : RMI TCP Connection(15)-192.168.1.10 : DAO.select :    debug sql!Select NomArbre, lister From Arbres where NumeroArbre = ?!
    2010-04-12 09:39:06,002 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique7:  public java.util.LinkedList genealogie.servlet.actions.ListeArbres.empiler(java.util.LinkedList,genealogie.servlet.Historique), class genealogie.servlet.actions.ListeArbres
    2010-04-12 09:39:06,018 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique7.1:  class java.util.LinkedList, class genealogie.servlet.actions.ListeArbres
    2010-04-12 09:39:06,018 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    ServletGeniEntique7.1:  class genealogie.servlet.Historique, class genealogie.servlet.actions.ListeArbres
    2010-04-12 09:39:06,018 : FINEST : RMI TCP Connection(15)-192.168.1.10 : DAO.select :    debug sql!Select NomArbre, lister From Arbres where NumeroArbre = ?!
    2010-04-12 09:39:06,018 : FINEST : http-9000-Processor19 : ServletGeniEnTique.doPost :    java.lang.IllegalArgumentException: argument type mismatch
    2010-04-12 09:39:06,034 : FINEST : RMI TCP Connection(15)-192.168.1.10 : DAO.select :    debug sql!Select NomArbre, lister From Arbres where NumeroArbre = ?!
    2010-04-12 09:39:06,034 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique6 :  empiler
    2010-04-12 09:39:06,049 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique7:  public java.util.LinkedList genealogie.servlet.actions.ListeArbres.empiler(java.util.LinkedList,genealogie.servlet.Historique), class genealogie.servlet.actions.ListeArbres
    2010-04-12 09:39:06,049 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique7.1:  class java.util.LinkedList, class genealogie.servlet.actions.ListeArbres
    2010-04-12 09:39:06,049 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    ServletGeniEntique7.1:  class genealogie.servlet.Historique, class genealogie.servlet.actions.ListeArbres
    2010-04-12 09:39:06,049 : FINEST : http-9000-Processor23 : ServletGeniEnTique.doPost :    java.lang.IllegalArgumentException: argument type mismatch
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,

    Le type cast à Object et Object[] sont inutiles pour l'appel de la méthode invoke de la classe Method.
    Bien le bonjour chez vous
    Jowo

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    merci pour votre réponse.

    le cast n'est pas nécessaire mais supprime un warning de la compilation

    Encore merci pour votre aide
    Cordialement
    Gilbert Peche

  4. #4
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    C'est justement le warning du cast qui m'embête . Il ne devrait pas apparaître.

    Le cast peut cacher un problème.

    Le seul cast "obligé" est celui pour la valeur de retour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      Method gestionpile = action.getClass().getDeclaredMethod(etape.getActionPile(), parameterType);
      logger.log(BasicLevel.DEBUG, "ServletGeniEntique7:  "+ gestionpile.toString() + ", " + action.getClass().toString()) ;
      Class[] parametreTypeMethod = gestionpile.getParameterTypes();
                           for ( int j = 0; j < parametreTypeMethod.length; j++){
                             logger.log(BasicLevel.DEBUG, "ServletGeniEntique7.1:  "+ parametreTypeMethod[j].toString() + ", " + action.getClass().toString()) ;
                           }
                           historiques = (LinkedList) gestionpile.invoke(action,   parametreTypeMethod)
    L'appel d'invoke:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Object[] parametres = new Object[2];
    parametres[0] = historiques;
    parametres[1] = historique;
    historiques = (LinkedList) gestionpile.invoke(action,  parametres);
    Bien le bonjour chez vous
    Jowo

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    Bonjour,


    merci pour votre aide.

    cela fonctionne comme souhaité

    Encore merci

    Cordialement,

    Gilbert Pêche

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

Discussions similaires

  1. [Servlet] Utilisation de plusieurs classes
    Par hedgehog dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 04/05/2005, 09h43
  2. Utilisation de la classe List de STL avec wxWidgets
    Par aoyou dans le forum wxWidgets
    Réponses: 7
    Dernier message: 10/03/2005, 17h41
  3. Réponses: 8
    Dernier message: 22/12/2004, 22h57
  4. [SWT] Utilisation de la classe Tracker
    Par arN34 dans le forum SWT/JFace
    Réponses: 2
    Dernier message: 24/11/2004, 10h28
  5. Réponses: 2
    Dernier message: 18/05/2004, 14h12

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