Mini débat, quelle implementation JAVA de serveur ftp preferez vous ?

Mini débat, quelle implementation JAVA de serveur ftp preferez vous ? - Java - Programmation

Marsh Posté le 04-12-2006 à 23:58:38    

Salut je dois choisir un serveur FTP en java. La problématique c'est de pouvoir "surcharger" certaines opérations. Par exemple lors du dépôt dans un certains répertoire je voudrai lancer une sorte de batch java pour le traiter (soit le parser et balancer en BDD ou bien generer en retour un autre fichier dans un autre répertoire pour situer le genre de traitement). J'ai repéré une implémentation de la fondation Apache http://incubator.apache.org/ftpserver/ mais ce n'est pas très bien documenté. L'idéal étant d'embarquer facilement le serveur dans le reste de mon appli comme ici http://incubator.apache.org/ftpserver/faq.html (2e reponse de la FAQ).
 
(concernant la lib de client ftp je suis plutôt parti sur celle des apache commons)
 
Antoine (qui va s'amuser à parser des tables de mainframe datacom bientôt  :sweat: )

Reply

Marsh Posté le 04-12-2006 à 23:58:38   

Reply

Marsh Posté le 05-12-2006 à 15:11:09    

question bis vu que la premier n'attire pas les foules. Est ce que quelqu'un a un exemple de ftplet qui fonctionne j'ai fait ça pour tester mais rien n'y fait :(
 

Code :
  1. package test;
  2. import org.apache.ftpserver.ftplet.FtpException;
  3. import org.apache.ftpserver.ftplet.FtpRequest;
  4. import org.apache.ftpserver.ftplet.FtpResponse;
  5. import org.apache.ftpserver.ftplet.FtpletEnum;
  6. public class SampleFtpLet extends org.apache.ftpserver.ftplet.DefaultFtplet {
  7. public FtpletEnum onConnect(FtpRequest request,FtpResponse response) throws FtpException,
  8.             java.io.IOException
  9. {
  10.  System.out.println(" - detection d'une connection - " );
  11.  return FtpletEnum.RET_DISCONNECT;
  12. }
  13. public FtpletEnum onLogin(FtpRequest request,FtpResponse response) throws FtpException,
  14. java.io.IOException
  15. {
  16.  System.out.println(" - detection d'un login - " );
  17.  return FtpletEnum.RET_DISCONNECT;
  18. }
  19. public FtpletEnum onUploadStart(FtpRequest request, FtpResponse response)
  20.     throws FtpException {
  21.    System.out.println(" - detection d'un upload - " );
  22.        return FtpletEnum.RET_SKIP;
  23.    }
  24. }


 
dans la conf xml
 

Code :
  1. package test;
  2. import org.apache.ftpserver.ftplet.FtpException;
  3. import org.apache.ftpserver.ftplet.FtpRequest;
  4. import org.apache.ftpserver.ftplet.FtpResponse;
  5. import org.apache.ftpserver.ftplet.FtpletEnum;
  6. public class SampleFtpLet extends org.apache.ftpserver.ftplet.DefaultFtplet {
  7. public FtpletEnum onConnect(FtpRequest request,FtpResponse response) throws FtpException,
  8.             java.io.IOException
  9. {
  10.  System.out.println(" - detection d'une connection - " );
  11.  return FtpletEnum.RET_DISCONNECT;
  12. }
  13. public FtpletEnum onLogin(FtpRequest request,FtpResponse response) throws FtpException,
  14. java.io.IOException
  15. {
  16.  System.out.println(" - detection d'un login - " );
  17.  return FtpletEnum.RET_DISCONNECT;
  18. }
  19. public FtpletEnum onUploadStart(FtpRequest request, FtpResponse response)
  20.     throws FtpException {
  21.    System.out.println(" - detection d'un upload - " );
  22.        return FtpletEnum.RET_SKIP;
  23.    }
  24. }


 
je suis en serveur ftp embarqué dans mon appli donc je ne pense pas que ce soit un souci de classpath.
 
Annexe :
 
code du lancement du serveur  
 

Code :
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import org.apache.ftpserver.FtpConfigImpl;
  4. import org.apache.ftpserver.FtpServer;
  5. import org.apache.ftpserver.config.XmlConfiguration;
  6. import org.apache.ftpserver.ftplet.Configuration;
  7. import org.apache.ftpserver.interfaces.IFtpConfig;
  8. public class FtpserverLauncher {
  9. public static void main(String[] args) {
  10.  try {
  11.   XmlConfiguration xmlconfig = new XmlConfiguration("ftpd.xml" );
  12.   Configuration config =(Configuration)xmlconfig;
  13.   IFtpConfig ftpConfig = new FtpConfigImpl(config);
  14.   System.out.println(ftpConfig.getFtplet("f1" ).toString());
  15.   FtpServer server = new FtpServer(ftpConfig);
  16.   server.start();
  17.   BufferedReader entreeClavier = new BufferedReader(new InputStreamReader(System.in));
  18.   System.out.println ("- Serveur FTP apache demarré -" );
  19.   System.out.println ("- Appuyer sur une touche pour le fermer -" );
  20.         String saisie = entreeClavier.readLine();
  21.         saisie+="";
  22.         server.stop();
  23.      System.out.println ("- Serveur fermé -" );
  24.    
  25.  } catch (Exception e) {
  26.   System.out.println(e.getStackTrace());
  27.  }
  28. }
  29. }


Message édité par cooltwan le 05-12-2006 à 15:16:19
Reply

Marsh Posté le 16-03-2007 à 15:27:15    

Bonjour,
Je m'interresse également à l'utilisation des ftplets avec incubator, mais c'est pas assez documenté sur le site officiel. Est-ce que quelqu'un aurait une idée?
Merci

Reply

Marsh Posté le 16-03-2007 à 15:37:46    

si t'arrive à le faire fonctionner dis le moi :D en tout cas !

Reply

Marsh Posté le 16-03-2007 à 16:03:20    

cooltwan > Est-ce que ce n'est pas dans le fichier de conf que tu fais appel à tes méthodes? ou j'ai mal compris les maigres explications de la doc?

Reply

Marsh Posté le 16-03-2007 à 16:54:19    

j'ai essayé sans succès 2 méthodes soit d'embarquer le serveur dans mon appli, soit de rajouter dans le standalone dans la config la déclaration de mes ftplets.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed