2

Suite à l'intégration de printemps ftp doc, j'ai réussi à envoyer des fichiers vers un serveur FTP via le chemin de configuration java:Comment ajouter une méthode personnalisée à l'interface de passerelle ftp intégration de printemps?

@MessagingGateway 
public interface MyGateway { 

    @Gateway(requestChannel = "toFtpChannel") 
    void sendToFtp(File file); 

} 

ss

public static void main(String[] args) { 
    ConfigurableApplicationContext context = 
       new SpringApplicationBuilder(FtpJavaApplication.class) 
        .web(false) 
        .run(args); 
    MyGateway gateway = context.getBean(MyGateway.class); 
    // sending file to ftp server 
    gateway.sendToFtp(new File("/foo/bar.txt")); 
} 

Il me semble que le code ci-dessus utilise le méthode personnalisée 'sendToFtp()' pour envoyer le fichier au serveur ftp cible. Ma question est comment ajouter d'autres méthodes à l'interface MyGateway pour implémenter les opérations?

ls (list files) 
get (retrieve file) 
mget (retrieve file(s)) 
rm (remove file(s)) 
mv (move/rename file) 
put (send file) 
mput (send multiple files) 

Répondre

0

Chaque passerelle FTP ne peut gérer qu'une seule méthode.

Vous devez déclarer un pour chaque, puis ...

@MessagingGateway 
public interface MyGateway { 

    @Gateway(requestChannel = "toFtpGetChannel") 
    void sendToFtpGet(...); 

    @Gateway(requestChannel = "toFtpPutChannel") 
    void sendToFtpPut(...); 

    ... 

} 
+0

Est-il possible de souscrire à l'un des 'requestChannel'. Si oui, comment? – Sibtain

+0

Ce que vous demandez n'est pas clair du tout; et, dans tous les cas, vous ne devez pas poser de nouvelles questions dans les commentaires aux anciennes réponses. Posez une nouvelle question, avec beaucoup plus de clarté sur ce que vous essayez de résoudre; référence cette réponse de la nouvelle question si c'est pertinent. –