[Applet] java.lang.reflect.InvocationTargetException
Résolu/Fermé
A voir également:
- Caused by java.lang.reflect.invocationtargetexception
- Le terme «npm» n'est pas reconnu comme nom d'applet de commande ✓ - Forum Windows
- Applet G19 - Forum Matériel & Système
- Applet netbeans - Forum Programmation
- APPLET avec PHP - Forum PHP
- Probleme symfony - Forum Webmastering
3 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
6 nov. 2013 à 22:22
6 nov. 2013 à 22:22
Si tu as une java.lang.reflect.InvocationTargetException il faut creuser un peu, parce que ce n'est pas une exception en soit mais plutôt un "conteneur d'exception" il faut donc manipuler la méthode getTargetException() pour obtenir la "vraie" exception.
Utilisateur anonyme
7 nov. 2013 à 07:14
7 nov. 2013 à 07:14
Merci mais ce que je ne comprend pas : c'est pourquoi j'ai le droit a cette erreur alors que juste avant tout fonctionnais et j'ai rien touche dans le code !
Dans la fonction appele je ne fait qu'appeler un thread.
Que dois je ajoute ou modifier pour avoir eventuellement des informations supplementaires sur l'erreur plutot que d'avoir le conteneur en lui meme.
Dans la fonction appele je ne fait qu'appeler un thread.
Que dois je ajoute ou modifier pour avoir eventuellement des informations supplementaires sur l'erreur plutot que d'avoir le conteneur en lui meme.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
7 nov. 2013 à 07:37
7 nov. 2013 à 07:37
Pourquoi ça marchait avant et plus maintenant on le saura quand on verra le détail de l'exception.
Si tu n'as que "java.lang.reflect.InvocationTargetException" c'est que tu as du faire un code qui masque la trace, genre
Tu devrais donc avoir un gros pavé genre :
Si tu n'as que "java.lang.reflect.InvocationTargetException" c'est que tu as du faire un code qui masque la trace, genre
try { ... } catch (Exception e) { System.err.println(e); }alors que pour déboguer, il faut au un
e.printStackTrace();qui enverra la pile d'appel nous permettant de savoir où l'exception s'est déclenchée et qu'elle en est la cause.
Tu devrais donc avoir un gros pavé genre :
java.lang.reflect.InvocationTargetException
at la ligne qui provoque l'exception
at la ligne qui appelle la méthode qui provoque l'exception
at ...
caused by une première exception que l'on avait essayé de traiter
at la ligne qui avait provoqué la première exception
at la ligne de la méthode qui a provoqué la première exception
at ...
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
>
Utilisateur anonyme
7 nov. 2013 à 18:26
7 nov. 2013 à 18:26
Je ne connais pas trop bien les applets. Mais peut être que ton erreur se produit avant même que l'applet n'ai démarré.
Pour bien comprendre j'aimerais savoir pourquoi tu as été obligé de recréer ton applet juste à cause d'un changement de version de Java...
Pour bien comprendre j'aimerais savoir pourquoi tu as été obligé de recréer ton applet juste à cause d'un changement de version de Java...
Utilisateur anonyme
Modifié par guigui144 le 7/11/2013 à 17:32
Modifié par guigui144 le 7/11/2013 à 17:32
Voila mon code :
la fonction est bien appeler par java-script mais je pense que le problème vient du thread. mais tout mes try son associé e.printStackTrace(); donc je ne comprend pas trop pourquoi je n'ai pas plus d'informations...
Edit : en fait le thread n'est pas exécuté !
public void UploadToServer() {
Thread thread = new Upload();
thread.start();
}
class Upload extends Thread {
public void run() {
File file = null;
if (file_chosed)
{
System.out.println("le fichier choisi est perso ");
System.out.println("start convettion");
file = toMp3();
}
else
{
System.out.println("le fichier choisi est record.wav ");
file = toMp3();
}
if (!file.exists())
{
try {
throw new Exception("le fichier est introuvable !");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
HttpClient httpclient = new DefaultHttpClient();
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
HttpPost httppost = new HttpPost("http://clangue.net/model/student/upload.php?w="+work+"&u="+User);
MultipartEntity mpEntity = new MultipartEntity();
ContentBody cbFile = new FileBody(file, "audio/x-wav");
mpEntity.addPart("userfile", cbFile);
httppost.setEntity(mpEntity);
System.out.println("executing request " + httppost.getRequestLine());
if(jso != null )
{
try {
jso.call("changeUploadStat", new String[] {"executing request"});
}
catch (Exception ex) {
ex.printStackTrace();
}
}
HttpResponse response = null;
try {
response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
HttpEntity resEntity = response.getEntity();
System.out.println(response.getStatusLine());
if(jso != null )
{
try {
jso.call("changeUploadStat", new String[] {response.getStatusLine().toString()});
}
catch (Exception ex) {
ex.printStackTrace();
}
}
if (resEntity != null) {
try {
String test = EntityUtils.toString(resEntity);
System.out.println(test);
if(jso != null )
{
try {
jso.call("changeUploadStat", new String[] {test});
}
catch (Exception ex) {
ex.printStackTrace();
}
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
uploadState.setText("Envoyé avec succés");
progressBar.hide();
}
if (resEntity != null) {
try {
resEntity.consumeContent();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
httpclient.getConnectionManager().shutdown();
File file2 = new File(FileNameRecord);
if (file2.exists())
{
file2.delete();
}
}
}
la fonction est bien appeler par java-script mais je pense que le problème vient du thread. mais tout mes try son associé e.printStackTrace(); donc je ne comprend pas trop pourquoi je n'ai pas plus d'informations...
Edit : en fait le thread n'est pas exécuté !