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

Websphere Java Discussion :

[JSP/WebSphere] Boucle de controle sur un FTP


Sujet :

Websphere Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut [JSP/WebSphere] Boucle de controle sur un FTP
    salut à tous,
    voilà je veux checker grace à une boucle si un fichier apparait sur un ftp, bon alors déjà vous remarquerez que j'ai commenté la boucle pour me limiter au simple test de présence du fichier (il est donc déjà sur le serveur ftp et s'appelle "test.xml"), la page me renvoit tout le temps le listing du ftp avec "fichier non trouvé" alors qu'il est bien présent...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
    56
    57
    58
    <%@ page import="java.io.*"%>
    <%@ page import="java.lang.*"%> 
    <%@ page import="java.util.*"%>
    <%@ page import="sun.net.*"%>
     
    <% 
    try {
     
    sun.net.ftp.FtpClient client = new sun.net.ftp.FtpClient(); 
    client.openServer("ip LAN du ftp"); 
    client.login("mon user","mon pass" ); 
    client.binary(); 
    client.cd("upload");
     
    int ch;
    int trouve=0; 
    StringBuffer sb = new StringBuffer(); 
     
    //while(trouve!=1)
    //{
    TelnetInputStream tisList = client.list();
    while((ch = tisList.read()) >= 0) 
    { 
      String s = (new Character((char) ch)).toString();
     
    sb.append((char)ch); 
     
    }
     
    StringTokenizer st = new StringTokenizer(sb.toString());
    out.println(sb);
     
    try { 
    	while (st.hasMoreTokens()) {
    		if (st.nextToken().equals("test.xml"))
    			trouve = 1;
    			else trouve = 0;
    	}
     
    }
    catch (NoSuchElementException e) {}
     
    //}
     
    if(trouve==1) {
    	out.println("fichier de retour trouvé !");
    //	client.closeServer();
    //	response.sendRedirect("ONLcheckxml.jsp");
    	}
    	else out.println("fichier de retour non trouvé !");
     
    }
    catch (Exception e) { 
     
    out.println("Erreur: " + e.toString()); 
     
    }
    %>
    voilà le résultat de l'éxecution de cette page jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ---------- 1 ftp ftp 0 Aug 30 08:09 test.xml ---------- 1 ftp ftp 382 Aug 29 08:37 test2.xml fichier de retour non trouvé !
    merci d'avance aux futures reply

  2. #2
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Si t'es sûr de toi c'est peut-être
    le cache de ton navigateur peut-être lol,
    je vais voir si j'ai le temps pour tester ton code.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par clayde
    Si t'es sûr de toi c'est peut-être
    le cache de ton navigateur peut-être lol,
    je vais voir si j'ai le temps pour tester ton code.
    déjà vidé maintes et maintes fois peut être un problème de droit puisque lors du listing il me met des "----------" alors que j'ai bien config les droits pour mon user ftp... je veux bien avoir un testeur pour ce code ça serait cool merci

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    j'ai essayé avec un serveur de chez free...mais marche pas...

  5. #5
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    A priori, ton listing provenant du ftp contient bien ton fichier test.xml :


    ---------- 1 ftp ftp 0 Aug 30 08:09 test.xml ---------- 1 ftp ftp 382 Aug 29 08:37 test2.xml fichier de retour non trouvé !


    Donc le probléme vient de ton algo de parsing ...

    Essaye cela :
    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
     
    <%@ page import="java.io.*"%> 
    <%@ page import="java.lang.*"%> 
    <%@ page import="java.util.*"%> 
    <%@ page import="sun.net.*"%> 
     
    <% 
    try { 
     
    sun.net.ftp.FtpClient client = new sun.net.ftp.FtpClient(); 
    client.openServer("ip LAN du ftp"); 
    client.login("mon user","mon pass" ); 
    client.binary(); 
    client.cd("upload"); 
     
    int ch; 
    int trouve=0; 
    StringBuffer sb = new StringBuffer(); 
     
    //while(trouve!=1) 
    //{ 
    TelnetInputStream tisList = client.list(); 
    while((ch = tisList.read()) >= 0) 
    { 
      String s = (new Character((char) ch)).toString(); 
     
    sb.append((char)ch); 
     
    } 
    if(sb.toString().indexOf("test.xml")!=-1) trouve = 1;
     
    if(trouve==1) { 
       out.println("fichier de retour trouvé !"); 
    //   client.closeServer(); 
    //   response.sendRedirect("ONLcheckxml.jsp"); 
       } 
       else out.println("fichier de retour non trouvé !"); 
     
    } 
    catch (Exception e) { 
     
    out.println("Erreur: " + e.toString()); 
     
    }
    Attention ce code est un exemple pour vérifier que tout fonctionne, il va validé à chaque fois que la chaine "test.xml" est présente dans le listing ...
    Cela veut dire que "autretest.xml" va aussi afficher trouvé ...

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    ok merci, effectivement ça marche mais malgrès tout j'aimerai trouver le moyen de ne se limiter qu'à la vérification d'un fichier "test.xml", néanmoins j'avance grace à ça merci

  7. #7
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    Il faut se servir des expressions réguliéres (package java.util.regex) pour trouver ce que tu souhaites ...

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Pattern p = Pattern.compile("[\\s]test[.]xml[\\s]");
    Matcher m = p.matcher(sb.toString());
    if(m.find()) trouve=1;
    [.] le point est un caractére spécial qui signifie tout caractére donc c'est pour ca que je le mets entre crochet pour spécifier que c'est le caratére point que je souhaites

    [\\s] représente un caractére blanc d'espacement quelqu'il soit (espacement, tabulation, retour chariot, retour à la ligne, ...)

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Debernad
    Il faut se servir des expressions réguliéres (package java.util.regex) pour trouver ce que tu souhaites ...

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Pattern p = Pattern.compile("[\\s]test[.]xml[\\s]");
    Matcher m = p.matcher(sb.toString());
    if(m.find()) trouve=1;
    [.] le point est un caractére spécial qui signifie tout caractére donc c'est pour ca que je le mets entre crochet pour spécifier que c'est le caratére point que je souhaites

    [\\s] représente un caractére blanc d'espacement quelqu'il soit (espacement, tabulation, retour chariot, retour à la ligne, ...)
    merci beaucoup, je ne connaissais pas, je jette un oeil de ce coté

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    le seul prb c'est que ce package java.util.regex n'a pas l'air de se trouver dans le jre (1.3.0) de Websphere, ça se telecharge ce genre de truc ?

  10. #10
    Membre confirmé

    Inscrit en
    Juillet 2002
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 116
    Points : 514
    Points
    514
    Par défaut
    En regardant ici :
    http://java.developpez.com/outils/api/

    Tu trouvera les api qui feront ton bonheur lors de tes développements ...
    En particulier, l'api 100% pure java : Jakarta Regexp

    Les noms de classes ne sont pas les mêmes mais leur fonctionnement est à quelque chose prés identique ... regarde la classe RE qui correspond à la classe Pattern de mon exemple.

  11. #11
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Debernad
    En regardant ici :
    http://java.developpez.com/outils/api/

    Tu trouvera les api qui feront ton bonheur lors de tes développements ...
    En particulier, l'api 100% pure java : Jakarta Regexp

    Les noms de classes ne sont pas les mêmes mais leur fonctionnement est à quelque chose prés identique ... regarde la classe RE qui correspond à la classe Pattern de mon exemple.
    ça marche, milles mercis

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

Discussions similaires

  1. [AIX][KSH] Boucle sur répertoire ftp
    Par lola06 dans le forum Shell et commandes POSIX
    Réponses: 16
    Dernier message: 23/09/2013, 19h21
  2. [JSP/Websphere] File write / FTP / File read
    Par benben13 dans le forum Websphere
    Réponses: 34
    Dernier message: 18/08/2005, 16h18
  3. connection sur un ftp
    Par Invité dans le forum Développement
    Réponses: 3
    Dernier message: 31/05/2004, 19h51
  4. affichage de controles sur un splash screen
    Par shrek dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/11/2003, 19h59
  5. [] [Réseau] Transfert fichier sur un FTP
    Par CYFL dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 26/02/2003, 17h33

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