2011-07-04 15 views
1

Je dois donner à un client java un moyen d'envoyer des fichiers à une autre application exécutée sur un serveur d'applications. Je n'ai pas besoin de traiter le fichier, mais je fais certaines actions quand le fichier est reçu.Comment transférer un fichier du client Java au serveur Java?

Quels sont les bons moyens d'implémenter cette communication?

Je peux penser à EJB, mais je ne suis pas sûr que ce soit la meilleure option car je ne ai pas besoin de l'image en mémoire, même pour WebServices ...

Une autre option pourrait être d'ouvrir un serveur FTP mais je me demande s'il existe une bonne alternative pour faire cela avec Java.

Avez-vous des problèmes ou des suggestions? Merci!

+0

Quelles restrictions avez-vous? –

+0

Essayez les prises de courant? – Dimitri

+0

Vous pouvez lire des morceaux à partir de l'Inputstream et les écrire immédiatement sur le disque, pas besoin d'avoir le fichier entier en mémoire. – Luciano

Répondre

2

Je recommande fortement Netty La documentation est excellente, elle est simple à mettre en œuvre et vous pouvez envoyer n'importe quoi via votre propre tuyau personnalisé dont vous avez besoin. De plus, ils ont des classes auxiliaires pré-construites pour simplement envoyer des fichiers et faire un travail de pré/post-traitement sur le client et le serveur.

+0

Excellente option, même si cette question ne suit pas un schéma de "bonne/mauvaise réponse", j'ai repoussé toutes les bonnes réponses et choisi celle-ci comme un moyen de récompenser que ce soit celle que j'ai préférée le plus, parce que je n'ai pas Je ne connais pas l'existence de Netty. Merci! – edutesoy

+0

Merci. Je l'ai découvert il y a un certain temps et j'ai trouvé que c'était la meilleure des options. Apache a également un système similaire, mais je l'ai trouvé plus confus et la documentation n'est pas aussi bonne. –

4

Vous pouvez télécharger le fichier vers une servlet, par ex. en utilisant le MultiPartEntity de Apache HTTPClient dans une demande POST.

+1

Et sur le serveur, utilisez [Commons FileUpload] (http://commons.apache.org/fileupload/) pour gérer les données. –

1

Si vous utilisez des EJB, vous utilisez RMI. Vous pouvez essayer d'utiliser RMIIO pour diffuser les données. Je ne l'ai jamais utilisé, mais il prétend faire exactement ce que vous voulez. C'est assez vieux, mais alors RMI est stable, donc ça devrait fonctionner correctement.

Questions connexes