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

Servlets/JSP Java Discussion :

[Problème]Envoyer un fichier JSP vers un serveur


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 60
    Par défaut [Problème]Envoyer un fichier JSP vers un serveur
    Bonjour à tous,

    je voudrais savoir est-il possible de pouvoir envoyer un fichier du serveur tomcat vers un autre serveur sans passer par un serveur FTP.
    Lors de l’exécution d'une page jsp.

    Fonctionnement final :

    Après avoir générer un fichier jsp contenant des données de la base de données, le fichier doit être envoyé sur un serveur distant.

    Faut il utiliser un socket réseau ?

    Pourriez vous m'aiguiller en me donnant quelques pistes.


    Merci d'avance.

  2. #2
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    salut,

    déjà ton serveur distant est accessible comment ?
    Windows ? Linux ?

    S'il est sur le même LAN, pourquoi ne pas monter un disque "réseau" sur la machine distante ... le programme JAVA ira écrire le fichier sur ce disque réseau et hop, c'est fini.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 60
    Par défaut
    Désolé, j'ai oublié de préciser sur quoi je développe sous linux, ubuntu 11.04, Tomcat6.
    Sur un autre serveur distant oui, il faut utiliser le protocole http

    J'espère être claire dans mon explication.


    Merci.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    peux-tu préciser un peu ce que tu cherches à faire ?
    Transférer une page jsp contenant des données de la base... comprends pas trop... c'est la page html (au final) que tu veux transférer ou vraiment que la jsp ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Il y a un qqch qui existe sur ton serveur distant pour recevoir un fichier "upload" sur HTTP ?

    sinon, il te faudra y déployer une Servlet qui permettra d'écouter l'upload à partir de ton projet "client". Cherche sur ce forum on en a parler récemment de traiter "l'upload"

    Pour la partir cliente, celle qui envoie le fichier, utilise Apache Commons HttpClient (décidement 2 fois aujourd'hui, j'ai pourtant pas d'action) pour faire cela

    exemple :

    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
     
    package org.apache.http.examples.entity.mime;
     
    import java.io.File;
     
    import org.apache.http.HttpEntity;
    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.mime.MultipartEntity;
    import org.apache.http.entity.mime.content.FileBody;
    import org.apache.http.entity.mime.content.StringBody;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;
     
    /**
     * Example how to use multipart/form encoded POST request.
     */
    public class ClientMultipartFormPost {
     
        public static void main(String[] args) throws Exception {
            if (args.length != 1)  {
                System.out.println("File path not given");
                System.exit(1);
            }
            HttpClient httpclient = new DefaultHttpClient();
            try {
                HttpPost httppost = new HttpPost("http://localhost:8080" +
                        "/servlets-examples/servlet/RequestInfoExample");
     
                FileBody bin = new FileBody(new File(args[0]));
                StringBody comment = new StringBody("A binary file of some kind");
     
                MultipartEntity reqEntity = new MultipartEntity();
                reqEntity.addPart("bin", bin);
                reqEntity.addPart("comment", comment);
     
                httppost.setEntity(reqEntity);
     
                System.out.println("executing request " + httppost.getRequestLine());
                HttpResponse response = httpclient.execute(httppost);
                HttpEntity resEntity = response.getEntity();
     
                System.out.println("----------------------------------------");
                System.out.println(response.getStatusLine());
                if (resEntity != null) {
                    System.out.println("Response content length: " + resEntity.getContentLength());
                }
                EntityUtils.consume(resEntity);
            } finally {
                try { httpclient.getConnectionManager().shutdown(); } catch (Exception ignore) {}
            }
        }
     
    }
    la doc : http://hc.apache.org/httpcomponents-.../examples.html

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 60
    Par défaut
    Le fichier est bien présent sur le serveur distant.

    Ce que je cherche à faire c'est de pouvoir écrire où envoyé un fichier html sur un client sachant qu'on connait son adresse IP.

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Par défaut
    Citation Envoyé par Burton's91 Voir le message
    Le fichier est bien présent sur le serveur distant.

    Ce que je cherche à faire c'est de pouvoir écrire où envoyé un fichier html sur un client sachant qu'on connait son adresse IP.
    Tu veux envoyer à quelle fin? pour un affichage à chaud c'est ça? Peux tu exposer fonctionnellement ton pb?

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 60
    Par défaut
    D'un côte j'ai un serveur central qui envoie une requete http via la méthode GET qui est : "http://192.168.73.90:8080/page.jsp?lat=6&long&time=1334"

    Ensuite mon serveur en ligne récupère ces données puis vérifie la correspondance avec la base de donnée. Si les donnés sont correctes on envoie un message de confirmation via une requête http vers le serveur central qui fait office de client dans notre cas.

  9. #9
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    je comprends pas le besoin, ce doit être le fait de passer par une page jsp...

    fonctionnellement, tu veux faire quoi :
    un serveur 1 veut vérifier quelque chose sur un serveur 2 et traiter le retour, c'est ça ?

    si oui, je passerais par un Socket ou du rmi ou de l'ejb ou un web service

    mais une page ... il faut parser le résultat dans les 2 sens... ça me parait lourd
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 60
    Par défaut
    "un serveur 1 veut vérifier quelque chose sur un serveur 2 et traiter le retour, c'est ça "
    Oui c'est bien çà

    Voici un croquis du fonctionnement que je dois avoir au final si c'est bien possible.




    Merci.

  11. #11
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    le traitement de vérification est si long que ça ?
    pourquoi le serveur central n'attendrait-il pas la réponse au GET ...
    réponse qu'il pourrait alors traiter directement et/ou sauvegarder.

  12. #12
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 60
    Par défaut
    Au niveau du temps de traitement il n'est pas long j'ai juste décrit les différentes étapes du coté du serveur publique pour comprendre le fonctionnement du système.

    Sinon pour votre proposition de réponse GET, elle me semble intéressant même judicieuse, mais du côté serveur central comment celà se passerais-t-il ?

    Car du côté du serveur publique il y a un programme en C qui tourne en permanence il reçoit des données venant d'un autre système les traites puis l'envoie sur le serveur publique via la requête http://site:8080/page.jsp?lat=12&long=45

    Si du côté serveur central il reçoit la réponse par la méthode GET, sur la même requête ?
    Ou il faut créer une autre page jsp ?

    Car la donnée envoyer du serveur publique vers le serveur central après vérification des données correspond à un nom d'arrêt de bus.

    Là je suis un peu perdu.

    Merci beaucoup d'avance pour votre aide.

  13. #13
    Membre Expert
    Avatar de fxrobin
    Homme Profil pro
    Architecte SI, Java Fan, API Manager
    Inscrit en
    Novembre 2007
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte SI, Java Fan, API Manager
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2007
    Messages : 875
    Par défaut
    Citation Envoyé par Burton's91 Voir le message
    Car du côté du serveur central il y a un programme en C qui tourne en permanence il reçoit des données venant d'un autre système les traites puis l'envoie sur le serveur publique via la requête http://site:8080/page.jsp?lat=12&long=45
    serveur central, tu voulais dire, et pas publique

  14. #14
    Membre confirmé
    Inscrit en
    Avril 2012
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Avril 2012
    Messages : 60
    Par défaut
    Oui. Du coup j'ai trouvé comment faire grâce à vos propositions.

    Je vous remercie tous ceux qui ont pris le temps de m'aider.

    Merci

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

Discussions similaires

  1. envoyer un fichier XML d'un serveur vers un pc
    Par maroonet dans le forum C#
    Réponses: 2
    Dernier message: 09/04/2010, 13h14
  2. envoyer des fichier xml vers le client
    Par fakhirov dans le forum Services Web
    Réponses: 1
    Dernier message: 18/02/2008, 16h53
  3. [JBOSS] problème d'accès fichiers jsp
    Par Blu3b3rry dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 15/12/2007, 13h16
  4. Réponses: 5
    Dernier message: 21/11/2006, 22h58
  5. Réponses: 6
    Dernier message: 07/11/2006, 11h44

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