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

API standards et tierces Java Discussion :

Commons.net erreur lors du chargement d'un fichier


Sujet :

API standards et tierces Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut Commons.net erreur lors du chargement d'un fichier
    Bonjour, j'étais venu ici il y a un moment pour un problème de chargement sur un serveur ftp d'un fichier binaire et grâce à certains d'entre vous j'avais pu finir mon application sans perdre tous mes cheveux ^^

    Là j'ai un soucis "bizarre" j'ai changé de pc donc réinstaller éclipse et jdk (7u1) et ma fonction qui me permettait de créer un répertoire sur le serveur et de charger toutes les photos d'un répertoire local sur le répertoire créer du serveur ftp ne marche plus...

    Je ne comprends vraiment pas. En fait elle crée bien le répertoire, elle va dedans mais dès que je veux écrire un fichier dedans (dès le premier tour de mon foreach) ça plante ...

    Voici le message d'erreur :
    java.net.SocketException: Software caused connection abort: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at sun.nio.cs.StreamEncoder.writeBytes(Unknown Source)
    at sun.nio.cs.StreamEncoder.implFlushBuffer(Unknown Source)
    at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
    at sun.nio.cs.StreamEncoder.flush(Unknown Source)
    at java.io.OutputStreamWriter.flush(Unknown Source)
    at java.io.BufferedWriter.flush(Unknown Source)
    at org.apache.commons.net.ftp.FTP.__send(FTP.java:496)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:470)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:547)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:596)
    at org.apache.commons.net.ftp.FTP.quit(FTP.java:804)
    at org.apache.commons.net.ftp.FTPClient.logout(FTPClient.java:941)
    là y a moins d'un tiers du message d'erreur...

    Et voici mon code :

    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    public static boolean copieDePhotosFTP(File repertoire , String nomRep)
    			{
    		File[]listeFichier = repertoire.listFiles();
    		FTPClient con = getConnexionFTP();
    		try {
    			if (con.changeWorkingDirectory("www/photos"))
    			{
    				con.mkd(FncControlesSaisies.nomPourFTP(nomRep));
    				if (con.changeWorkingDirectory(FncControlesSaisies.nomPourFTP(nomRep)))
    				{
    					System.out.println(con.printWorkingDirectory());
    					con.setFileType(FTP.BINARY_FILE_TYPE);
    					try {
    
    						for (File image : listeFichier)
    						{
    							if (!image.isDirectory())
    							{
    								FileInputStream entre = new FileInputStream(image);
    								if (FncImages.isFormatImage(image.getName()))						
    									con.storeFile(FncControlesSaisies.nomPourFTP(image.getName()), entre);
    								entre.close();
    							}
    
    						}
    
    						con.logout();
    						return true;
    					}
    					catch (Exception e) {
    						con.logout();
    						return false;
    					}
    				}
    				else 
    				{
    					con.logout();
    					return false;
    				}
    			}
    			else
    			{
    				con.logout();
    				return false;
    			}
    		} catch (IOException e) {
    			try {
    				con.logout();
    			} catch (IOException e1) {
    				e1.printStackTrace();
    			}
    			return false;
    		}
    		
    	}
    Ce qui fait planter c'est la ligne en rouge ... cette fonction fonctionne très bien chez la personne pour qui j'avais réalisé le programme qui l'utilisait ... là je fait un autre programme mais qui doit lui aussi utiliser cette fonction et pour une raison qui m'échappe complètement, elle ne marche plus... (je n'ai pas pu tester le code source de l'ancien programme parce que j'ai fait quelques boulettes il m'en manque la moitier )


    Donc sur le serveur, le répertoire est créé, avec le bon nom, par contre à l'intérieur aucun fichier n'est créé le programme plante dès le premier tour de boucle... quelqu'un aurait une idée ?

  2. #2
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    reBonjour ! Personne n'aurait une idée ? J'ai pensé à une histoire de droit mais j'ai regardé et les chmod sont sur 705 (comme celui dans lequel j'arrive à créer le répertoire donc il n'y a pas de raison)

    Je ne sais même pas à quoi correspond cette erreur en fait :/ c'est très frustrant !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Bonsoir bonsoir ! Toujours pas de réponse je vais commencer à dramatiser ^^

    J'ai passé plusieurs heures à chercher et à essayer des trucs j'ai rien trouvé...

    Dans la liste des choses que j'ai essayé :
    Utiliser un autre serveur ftp (j'ai essayé avec OVH et FREE et j'obtiens exactement les mêmes résultats)
    Fermer le pare-feu et l'antivirus ... toujours exactement le même résultat
    Lancer l'appli en tant qu'admin (sait-on jamais... oO) pareil...

    Je n'arrive pas du tout à comprendre d'où vient le problème ... J'ai fait un try catch sur la ligne qui me pose soucis et j'ai fait un system.out.println(evenement.getMessage())

    ça me donne ça :
    Software caused connection abort: recv failed
    au premier fichier puis ça :
    Software caused connection abort: socket write error
    pour les suivants...

    Ce qui me dépasse c'est que par contre je peux créer des répertoire comme je veux donc ça serait vraiment un problème du storeFile ...
    Et je me demande si ça ne correspond pas au jdk 7u1 ... parce que j'étais sous le 6 quand mon programme marchait

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    Bonjour ! Encore moi et mon problème :/

    Alors j'ai testé la classe dans mon ancien programme en créant un main qui l'utilise le plus simplement du monde et la fonction marche...

    Ce main qui test cette fonction, j'ai essayé de le mettre dans mon projet pour le quel ça ne fonctionne mais et .... ça ne marche pas il me dit
    java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.connect0(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
    at java.net.PlainSocketImpl.connect(Unknown Source)
    at java.net.SocksSocketImpl.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:168)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:189)
    at org.apache.commons.net.SocketClient.connect(SocketClient.java:278)
    at controleur.FncFTP.getConnexionFTP(FncFTP.java:106)
    at controleur.FncFTP.copieDePhotosFTP(FncFTP.java:29)
    at controleur.test.main(test.java:12)
    java.io.IOException: Connection is not open
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:465)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:547)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:596)
    at org.apache.commons.net.ftp.FTP.quit(FTP.java:804)
    at org.apache.commons.net.ftp.FTPClient.logout(FTPClient.java:941)
    at controleur.FncFTP.copieDePhotosFTP(FncFTP.java:72)
    at controleur.test.main(test.java:12)
    Je ne sais pas trop à quelle connexion il fait référence mais en tout cas dans mon autre programme j'ai exactement le même singleton de connexion au FTP et il fonctionne très bien ..... oO

    Donc là je ne comprends juste absolument rien....... dans les deux programmes j'ai la même version de commons.net...

    Franchement il y a un truc que je m'explique pas : J'ai deux classes que j'ai copiés dans un projet et dans un autre... et elles marchent dans un projet et pas dans l'autre........... c'est juste complètement incompréhensible


    Bon, je viens de regarder pendant que je rédigeais mon message... et il y a une différence quand même, c'est le JRE system library qui est javaSE 1.6 pour celui où ça marche et 1.7 pour l'autre... pensez vous que ça peut venir de là ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2011
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2011
    Messages : 24
    Points : 21
    Points
    21
    Par défaut
    C'était bien ça ! J'ai passé la librairie système en javaSE 1.6 et après pas mal de modif (notamment les switch sur string qui ne marchent que dans javaSE 1.7) j'ai tout qui marche !

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/08/2010, 12h24
  2. erreur lors du chargement d'un fichier swf
    Par pseudobidon57 dans le forum Général VBA
    Réponses: 2
    Dernier message: 05/11/2006, 13h56
  3. [vb.net] erreur lors de l'éxécution d'une classe
    Par os_rasta dans le forum VB.NET
    Réponses: 10
    Dernier message: 01/12/2005, 18h34
  4. [w2k] Erreur lors du chargement du système d'exploitati
    Par ggnore dans le forum Windows XP
    Réponses: 7
    Dernier message: 16/11/2005, 19h24
  5. erreur lors du chargement du système d'esploitati
    Par ktel dans le forum Windows XP
    Réponses: 2
    Dernier message: 15/11/2005, 09h39

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