Java exception: java.lang.NoSuchMethodError

Seb. -  
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

j'ai un ptit souci les amis;
j'ai un projet que j'exécute sous eclipse , pas de probleme tout marche.
je fais un .JAR en changeant le compile buld path en (1.4) , puis je le deploie sur la base oracle (10G). je l'appelle avec une procedure .
je compile, tout marche. Mais quand j'exécute sous toad j'ai l'erreur suivante :

ORA-29532: Java call terminated by uncaught Java exception:
java.lang.NoSuchMethodError


je ne sais pas c'est du à quoi ! puisque pas de probleme avec le code .

Help me please!!!!

Merci


A voir également:

2 réponses

JavaX36
 
Hello, il faut utiliser l'exception
try   
{   
    
/* Votre Code ici */   

}   
catch(NoSuchMethodError e)   
{   
System.out.println(e);   
}    

pour plus d'information consulter le site http://www.JavaMafia.com

Bonne Chance
5
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Ceci ne corrigera pas l'erreur, ça nous en apprendra certes plus, mais faudrait-il encore savoir quelle partie du code génère l'erreur à l'exécution.

PS. Le site javamafia.com n'est en rien une source officielle et exhaustive de documentation Java
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Voici la documentation associée à ton exception (in english of course) :
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/NoSuchMethodError.html

Je ne connais pas ton code, et je ne sais pas trop en quoi consiste le déploiement sur Oracle ni ce qu'est toad... Mais, vu la description de l'erreur, je dirais que tu n'as pas tout compilé en même temps, ou que le passage à la version 1.4 a modifié ton code.
En effet si mon anglais est pas trop mauvais, tu appelles quelque part une méthode qui n'est pas trouvé dans la classe associée.

Par exemple, si une classe A appelle la méthode m de la classe B, pas de problème si m existe. Mais si tu recompiles B après avoir supprimé m, et ce sans recompiler A, alors A appelle toujours B.m alors que cette méthode n'existe plus !

Essayes de tout recompiler en même temps, si c'est ce que je pense le compilateur te dira que tu appelles dans A la méthode B.m qui n'existe pas (qui n'existe plus).

Remarque : peut-être aussi que la version 1.4 de la classe B ne prenait pas encore en charge la méthode m auquel cas il faut soit que tu utilises des méthodes de la version 1.4 équivalentes à m, soit que tu passe à une version qui prends en charge la méthode m.
0