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

Tomcat et TomEE Java Discussion :

[Tomcat]Mon serveur tomcat ne me livre pas la page HTML


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 77
    Points
    77
    Par défaut [Tomcat]Mon serveur tomcat ne me livre pas la page HTML
    bonjour
    j'ai essayé une petite classe client qui demande une page web que j'ai mis ds webapps de mon tomcat, mais le serveur ne réponds pas a ma demande!! la valeur :
    IN=new BufferedReader(new InputStreamReader(client.getInputStream())); est NULL !!!!!!
    prkoi est ce NULL???
    merci



    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre expérimenté
    Avatar de zekey
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 036
    Points : 1 403
    Points
    1 403
    Par défaut
    Heu la il va falloir être plus précis par sinon coin coin le canard.
    Sérieusement donne nous un bout de code et décris plus précisément l'architecture de ton application.
    Steve Hostettler
    est ton ami(e) et le tag aussi.

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 77
    Points
    77
    Par défaut j'essaye d'etre plus clair! tomcat!
    voila j'ai une classe clientTCP, j'utilise les sockets:
    je crée une socket client avec localhost et le port 8181 de mon tomcat, apres j'utiliser un flux d'entrer du clavier pour demander ma page:

    GET rep/essaiHTML.html HTTP/1.1
    le serveur me retourne que des NULL
    pourtant que je demande la page avec un navigateur :

    www.localhost:8181/rep/essaiHTML
    il m'affiche la page

    voci un bout de code stp:

    //client: est une socket (localhost et 8181 est le port de mon serveur)

    OUT=new PrintWriter(client.getOutputStream(),true);
    // création du flux d'entrée clavier
    IN=new BufferedReader(new InputStreamReader(System.in));
    // boucle saisie-envoi des commandes
    System.out.println("Commandes : ");
    while(true){
    // lecture commande tapée au clavier
    commande=IN.readLine().trim();
    // fini ?
    if (commande.toLowerCase().equals("fin")) break;
    // envoi commande au serveur
    OUT.println(commande);

    // commande suivante
    }//while
    }catch(Exception ex){
    // erreur
    System.err.println("Envoi : L'erreur suivante s'est produite : " + ex.getMessage());
    }//catch
    // fin - on ferme les flux

    //-------------------------------------------------

    String réponse=null; // réponse serveur
    // gestion des erreurs
    try{
    // création du flux lecture réseau
    IN_buffer=new BufferedReader(new InputStreamReader(client.getInputStream()));

    // boucle lecture lignes de texte du flux IN
    while (true) {
    // lecture flux réseau
    réponse = IN_buffer.readLine();
    System.out.println("<-- " + réponse);
    // flux fermé ?
    if (réponse == null)break;
    // affichage
    } //while
    merci

  4. #4
    Membre chevronné Avatar de Mister Nono
    Homme Profil pro
    Ingénieur Mathématiques et Informatique
    Inscrit en
    Septembre 2002
    Messages
    2 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur Mathématiques et Informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 232
    Points : 1 897
    Points
    1 897
    Par défaut
    Ce ne serait pas cette adresse à appeler ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    http://localhost:8181/rep/essaiHTML
    La connaissance ne sert que si elle est partagée.
    http://ms2i.net

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 77
    Points
    77
    Par défaut ok
    oui tu as raison pour l'adresse http://localhost....
    mais le probleme n'est pas ici!! parceque avec le navigateur la page est affichée, mais parcontre je veux recevoir une string de toute la page html, alors j'ai ecris la classe client en utilisant un socket : et comme je l'ai déja expliqué mon GET me retourne que des NULL:

    GET essais/essaiHTML.html HTTP/1.1
    merci

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    bonjour,

    ce que faisait remarquer Mister Mono c'est as tu essayé ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GET http://localhost:8181/rep/essaiHTML HTTP/1.1

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 77
    Points
    77
    Par défaut
    oui mais le "get" je le fais a l'exécution de ma classe clienTCP, le socket est déja définit sur le serveur :localhost et le port:8181

    alors le get se fait comme tel:

    GET essais/essaiHTML.html HTTP/1.1

    le rep "essais" se trouve ds le rep webapp de mon tomcat..
    tout fonctionne bien , il n y a pas d'erreur d'excution sauf que le serveur me retourne une NULL (ds mon socket ) et cela apres 15 sec!!!!!!
    je ne trouve vraiment pas c koi le probleme

  8. #8
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 77
    Points
    77
    Par défaut
    alors!!
    kelkun a une idée!!!!?
    je suis coincé la!!
    merci

  9. #9
    Membre habitué

    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 105
    Points : 134
    Points
    134
    Par défaut
    Bonjour

    Ton pb est un pb de protocole HTTP

    tu dois envoyer au minimum un truc du style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GET essais/essaiHTML.html HTTP/1.1\r\n
    \r\n
    La ligne vide signifie que l'entête de la request http est finie.

    Puis une fois que cela est fait il faut forcer l'ecriture du buffer:
    OUT.flush()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (commande.toLowerCase().equals("fin")) break;
    devrait être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (commande.toLowerCase().equals("fin")){
    OUT.println("");
    OUT.flush();
    }
    Tu peux toujour essayer avec telnet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c:\>telnet localhost 8181
    GET essais/essaiHTML.html HTTP/1.1[enter]
    [enter]
    Willy78

  10. #10
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 77
    Points
    77
    Par défaut
    merci willy
    j'avais vraiment oublié la ligne vide suite a ma ligne GET
    maintenant ca marche bien...mais sans le OUT.flush()
    peux tu m'expliquer stp a quoi sert le OUT.flush();
    merci bcp

  11. #11
    Membre actif
    Avatar de jak0
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 272
    Points : 219
    Points
    219
    Par défaut
    OUT.flush() permet de vider le buffer d'envoi dans le stream courant.
    En fait, la page HTML que ton appli renvoi au navigateur client est bufferisé.
    C'est à dire qu'au fur et à mesure de construction, elle est morcellé pour n'être envoyé par petit paquets.
    Le OUT.flush() permet de forcer l'envoi du buffer à ce moment précis.
    Goah Sha Kree

  12. #12
    Membre régulier
    Inscrit en
    Décembre 2005
    Messages
    114
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 114
    Points : 77
    Points
    77
    Par défaut [ résolu ]

    merci bcp jak0 pour votre explication

    bonne année a tous

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/11/2011, 08h20
  2. Problème avec mon serveur Tomcat
    Par L'aigle de Carthage dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 20/05/2011, 08h42
  3. supprimer les info sur mon serveur TOMCAT exp err 404
    Par liquideshark dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 27/09/2008, 12h39
  4. Réponses: 0
    Dernier message: 30/04/2008, 11h23
  5. Rendre accessible mon serveur Tomcat sur le web
    Par FraKtaL2k dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 27/01/2008, 17h04

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