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

Langage Java Discussion :

Réflectivité expérimentation et échec (NoSuchMethodException)


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 40
    Par défaut Réflectivité expérimentation et échec (NoSuchMethodException)
    Après m'être gratté la tête à chercher comment invoquer des méthodes en fonction de l'état d'un objet, je suis finalement arrivé à ce Fil de discussion de référence.

    Mais, en bout de ligne, ça ne fonctionne toujours pas, j'obtiens une NoSuchMethodException dont voici le détail pertinent:
    java.lang.NoSuchMethodException: ca.cids.map.email.EmailRequest.sendSendFailed(javax.xml.transform.Transformer, java.io.File)
    at java.lang.Class.getMethod(Class.java:1605)
    at ca.cids.map.email.EmailRequest.resendRequestsByStatus(EmailRequest.java:805)
    Le bout de code concerné:

    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
            		Hashtable sendingMethods = new Hashtable();
            		sendingMethods.put("received", "sendReceived");
            		sendingMethods.put("validated", "sendValidated");
            		sendingMethods.put("accepted", "sendAccepted");
            		sendingMethods.put("transformed", "sendTransformed");
            		sendingMethods.put("send failed", "sendSendFailed");
            		sendingMethods.put("acknowledged", "sendSendFailed");
            		sendingMethods.put("malformed event string", "sendSendFailed");
            		sendingMethods.put("tecad configuration file missing", "sendSendFailed");
            		sendingMethods.put("tecad agent initialization failed", "sendSendFailed");
     
            		Class[] parameterTypes = new Class[2];
            		parameterTypes[0] = Transformer.class;
            		parameterTypes[1] = File.class;
     
            		Method m = null;
            		try {
            			m = this.getClass().getMethod(sendingMethods.get(currentState).toString(), parameterTypes);
                     		Object[] parameters = new Object[2];
                		        parameters[0] = xformer;
                    		parameters[1] = tecConfigFile;
                    		incrementRetryCount(key);
                    		m.invoke(this, parameters);
            		}
            		catch (NoSuchMethodException e) {
             			log.warn("Exception: ", e);
            			failedRecordsList.add(key);        			
            		}
            		catch (IllegalAccessException e) {
            			log.warn("Exception: ", e);
            			failedRecordsList.add(key);
            		}
            		catch (InvocationTargetException e) {
            			log.warn("Exception: ", e);
            			failedRecordsList.add(key);        			
            		}
    Et le prototype de la méthode pour laquelle j'obtiens une exception:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        private boolean sendSendFailed(Transformer xformer, File tecConfig) {}
    J'ai spécifié Transformer.class et File.class parce que xformer.getClass() me donnait org.apache.xalan.transform.TransformerImpl. Et dans les deux cas, ça ne fonctionne pas.

    Quelqu'un a une idée à me soumettre? Je ne vois pas du tout ce qui ne va pas. Cette portion de code n'est qu'expérimentale, en fait la table sera construite ailleurs à partir de données paramétrisées.

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Selon le javadoc de getMethod :
    Citation Envoyé par javadoc
    Returns a Method object that reflects the specified public member method of the class or interface represented by this Class object.
    ... or ta méthode sendSendFailed est privée.

  3. #3
    Membre averti
    Inscrit en
    Février 2008
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 40
    Par défaut


    Merci ça marche au poil et le coup de maillet est bien mérité.

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

Discussions similaires

  1. [sqlExp.pas] : échec compilation
    Par PpPool dans le forum Bases de données
    Réponses: 12
    Dernier message: 11/05/2006, 10h50
  2. pas de redémarrage même en mode sans échec
    Par bonhommes dans le forum Windows XP
    Réponses: 9
    Dernier message: 24/10/2005, 18h04
  3. Jeu d'échec borland soap
    Par rpoulin dans le forum Web & réseau
    Réponses: 2
    Dernier message: 20/10/2005, 05h02
  4. Problèmes d'échecs
    Par mule hollandaise dans le forum C++
    Réponses: 4
    Dernier message: 30/09/2005, 19h37
  5. échec téléchargement de libpqxx
    Par zxgloster016b dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 20/07/2004, 15h09

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