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 :

[Tomcat]communication applet-servlet


Sujet :

Servlets/JSP Java

  1. #1
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut [Tomcat]communication applet-servlet
    --

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    ** oubliez le message ci-dessus

    j'ai décidé de me lancer dans les servlets. J'ai installé Tomcat et ça à l'air de tourner. Cependant il doit y avoir une bulle dans ma config:

    dans l'applet, j'envoie un fichier vers la servlet
    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
     
    private boolean serializeToServlet(File xml) {
        boolean pass = false;
     
        try {
          URL url = new URL(getDocumentBase(), "servlet/ServletLisFichier");
          URLConnection connexion = url.openConnection();
     
          connexion.setDoOutput(true);
     
          ObjectOutputStream oos = new ObjectOutputStream(connexion.getOutputStream());
          BufferedReader br = new BufferedReader(new InputStreamReader(connexion.getInputStream()));
          oos.writeObject(xml);
          String answer = br.readLine();
          pass = "OK".equalsIgnoreCase(answer);
        } catch (Exception e) {
          pass = false;
          e.printStackTrace();
          JOptionPane.showMessageDialog(this, e.getClass()+": "+e.getMessage(),"Erreur", JOptionPane.ERROR_MESSAGE);
        }
     
        return pass;
      }
    et la le code de la servlet:
    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
     
    protected void doPost(HttpServletRequest request,
        HttpServletResponse response) throws IOException {
        ObjectInputStream ois = new ObjectInputStream(request.getInputStream());
        PrintWriter pw = new PrintWriter(response.getOutputStream());
        Object o = null;
     
        try {
          o = ois.readObject();
        } catch (ClassNotFoundException e) {
          e.printStackTrace();
        }
     
        pw.println("OK");
        pw.close();
        ois.close();
     
        File xml = (File) o;
        xml.createNewFile();
      }
    j'ai aussi crée un répertoire WEB-INF à la racine du site (dans le répertoire 'webapps/ROOT/xxx' de tomcat) qui contien un fichier web.xml:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app>
        <servlet>
          <servlet-name>ServletLisFichier</servlet-name>
          <servlet-class>ServletLisFichier</servlet-class>
        </servlet>
     
        <servlet-mapping>
          <servlet-name>ServletLisFichier</servlet-name>
          <url-pattern>/index.jsp</url-pattern>
        </servlet-mapping>
    </web-app>
    ... et j'ai mis 'ServletLisFichier.class' dans le répertoire 'classes'

    Mais à l'exécution, j'ai une erreur "FileNotFoundException" sur "http://localhost:8080/monsite/servlet/ServletLisFichier". Je pense que cela vient du fichier web.xml mais je ne vois pas le problème, à vrai dire je n'ai pas trouvé de descriptif détaillé sur la structure du fichier web.xml dans une utilisation de tomcat...

    - me plz !


  3. #3
    Membre actif Avatar de wace
    Inscrit en
    Septembre 2003
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Septembre 2003
    Messages : 224
    Points : 263
    Points
    263
    Par défaut
    C'est peut etre parce que je ne suis pas bien reveiller ...

    mais tu ne te serais pas tromper dans l'URL
    essaie plutot de faire
    http://localhost:8080/monsite/ServletLisFichier

  4. #4
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    hello wace,

    l'url de ma page jsp c'est en fait http://localhost:8080/monsite/index.jsp . Et j'arrive à y accéder (j'ai testé et ça tourne)

    Le problème, c'est que dans cette page jsp, je lance une applet qui, en fin de traitement, doit communiquer avec une servlet (elle renvoie un fichier xml en fait -> voir code).

    Et donc, au moment de communiquer avec la servlet je me retrouve avec l'erreur "FileNotFoundException" sur "http://localhost:8080/monsite/servlet/ServletLisFichier" (l'erreur est générée par l'applet, au moment où je crée mon BufferedReader avec l'InputStream de la connexion)

    Et donc d'après moi cela vient de mon fichier web.xml, qui ne me semble pas complet

    Une idée ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Points : 107
    Points
    107
    Par défaut
    Hello,

    je pense aussi que tu as un problème dans le fichier web.xml :
    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
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app>
        <servlet>
          <!-- Défini le nom utilisé pour le mapping en interne -->
          <servlet-name>ServletLisFichier</servlet-name>
           <!-- Défini ta classe (si /WEB-INF/classes/ServletListFichier.class, ne devrait pas poser de problèmes) -->
          <servlet-class>ServletLisFichier</servlet-class>
        </servlet>
     
        <servlet-mapping>
          <!-- Nom de ta servlet que tu as défini dans le tag "servlet-name"-->
          <servlet-name>ServletLisFichier</servlet-name>
           <!-- URL pour accéder à ta servlet -> pas utiliser d'extension (.jsp pas bien!!) -->
          <url-pattern>/index.jsp</url-pattern>
        </servlet-mapping>
    </web-app>
    Selon ton post, tu essaies d'accéder à ta servlet en utilisant son nom dans l'URL. Je ne pense pas que ce soit bien, je pense que tu devrais utiliser l'URL définie dans le tag "url-pattern" que je redéfinirait sans l'extension en , par exemple, "/ServletLisFichier".

    Je ne sais pas si ce qui te pose problème mais bon, essaie...

    @+

  6. #6
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Est-ce que ce n'est pas ta méthode de conenxion qui ne vas pas? Perso pour communiquer avec des servlets j'utilise httpClients de jakarta qui permet de générer des requêtes http "propres".
    Parce que là j'ai l'impression que tu attaques direct une url à laquelle tu essayes d'envoyer un fichier mais sans respecter le protocole de la méthode POST.
    Dis moi ce que tu en penses, je vais attaquer le même genre de problème (applet java qui doit ouvrir une page grâce à une url, lire son contenu, envoyer un form en POST et afficher son résultat) alors le max d'infos c'est le mieux.

  7. #7
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    pour tout vous dire, j'essaie de reproduire l'exemple de cette adresse:

    http://emmanuel-remy.developpez.com/...vletSocket.htm

    bon j'ai remplacé la chaine de caractère par un objet de type File que je sérialise dans le flux mais ça devrait pas changer beaucoup le schmilblick

    je vais essayer de modifier le web.xml comme me l'a indiqué ptitjack. Mais bon comme j'ai pas mal de problème avec Tomcat ici je vais devoir attendre d'être chez moi pour faire un test concluant

    si vous voyez le problème ou si vous avez d'autres suggestions n'hésitez pas

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 44
    Points : 35
    Points
    35
    Par défaut
    Ptitjack a raison, il faut appeler la servlet par l'url par laquelle tu l'as mappée, et pas par son nom.
    Et evite d'appeler l'url en .jsp parceque c'est trompeur (mais peut etre veux tu tromper).

    Tu peux l'appeler ./bidule.servlet ou ./bidule ça n'a pas d'importance, du moment que tu mets ce nom dans l'appel. Mais ça Pitijack l'a déjà dit.

    A plus

    Florian

  9. #9
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par Flobel
    (mais peut etre veux tu tromper)
    non, pas plus que ça

    bon là j'ai réussi à résoudre mon pb avec Tomcat au taf'.

    J'ai modifié le fichier web.xml comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app>
        <servlet>
            <servlet-name>ServletLisFichier</servlet-name>
        	<servlet-class>ServletLisFichier</servlet-class>
        </servlet>
     
        <servlet-mapping>
        	<servlet-name>ServletLisFichier</servlet-name>
        	<url-pattern>/ServletLisFichier</url-pattern>
        </servlet-mapping>
    </web-app>
    en faisant comme ça, l'url de ma servlet devient quoi ?

    ./servlet/ServletLisFichier ou alors
    ./ServletLisFichier
    :

    bon a vu de nez je dirais la 2ème (parce que la 1ère marche pas lol) mais pourrais-je avoir confirmation ?



    PS: c'est un peu la prise de tête ces servlets !!

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Points : 107
    Points
    107
    Par défaut
    Citation Envoyé par Pill_S
    PS: c'est un peu la prise de tête ces servlets !!
    Beuh non!!!

    Sinon, ton URL devient :
    http://localhost:8080/context/ServletLisFichier avec context qui est défini dans le fichier de configuration de tomcat pour ton context.

    Meuh non, c'est pas prise de tête avec Tomcat...

  11. #11
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par ptitjack
    Sinon, ton URL devient :
    http://localhost:8080/context/ServletLisFichier avec context qui est défini dans le fichier de configuration de tomcat pour ton context.
    dans le fichier de config de tomcat ? lequel ?

    et sinon, 'servlet' c'est pas un contexte par défaut ?

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Points : 107
    Points
    107
    Par défaut
    Dans le fichier server.xml qui se trouve dans le répertoire conf de ta distribution Tomcat.

    Tu as un tag qui se nomme host qui contient les informations relatives à ton serveur tomcat, et dans ce tag, il peut exister un tag context qui va définir un de tes contextes de ton serveur Tomcat.

    Par défaut, le répertoire déployé par Tomcat est le répertoire webapps de ta distribution Tomcat, les contextes déployés étant les répertoires ou les fichiers .war contenus dans ce dernier.

    Pour accéder à un context déployé par défaut, tu dois prendre comme URL :
    http://localhost:8080/monrep/maServlet
    avec monrep qui est le répertoire contenu dans webapps qui contient ton appli web et /maServlet qui est ce que tu as défini comme url-mapping pour ta servlet dans ton fichier web.xml

    Ouf, j'espère avoir été compréhensible et ne pas avoir dit trop de bêtises...

    @+

  13. #13
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par ptitjack
    Ouf, j'espère avoir été compréhensible et ne pas avoir dit trop de bêtises...
    pour moi c'est clair :-)

    j'essaie tout ça ce soir, mnt je dois partir pour 2 périodes d'anglais m'enfin c pas grave ça me fera une petite pause


  14. #14
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Oki merci à tous pour vos réponses, le problème venait bien de mon fichier web.xml et est maintenant résolu

    Maintenant que je comprend mieux Tomcat je vais pouvoir faire de sacrés bons trucs !

    tu avais raison ptitjack, c'est pas tant prise de tête que ça, une fois qu'on arrive tourner la première c'est gagné

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    85
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2004
    Messages : 85
    Points : 107
    Points
    107
    Par défaut
    Mon cher Pill_S, j'ai peut-être un chtit truc pour toi pour mieux comprendre Tomcat, mais peut-être que tu connais déjà ce site :
    http://etudiant.univ-mlv.fr/~mroussea/tomcat/tomcat.php

    Vachement bien fait...

    @+

  16. #16
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    merci pour le lien

    il me sera certainement utile dans pas très longtemps

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 44
    Points : 36
    Points
    36
    Par défaut
    Bonjour,

    J'avais moi aussi un problème de chargement de ma servlet sur le même exemple, et je viens d'en trouver la raison:
    Mon dossier sources et mon dossier classes ne se trouvaient pas dans le dossier WEB-INF.

    Pourriez vous m'expliquer pourquoi ces dossiers DOIVENT se trouver à cet emplacement, et si c'est paramétrable.
    Si tel est le cas, j'imagine que c'est dans le répertoire d'installation de tomcat, mais où ?

    Merci.

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

Discussions similaires

  1. [info] communication Applet <--> Servlet
    Par Shiryu44 dans le forum Applets
    Réponses: 9
    Dernier message: 16/12/2010, 11h32
  2. [JSP][Servlet][Applet] communication Applet-Servlet-Jsp
    Par williamv dans le forum Applets
    Réponses: 1
    Dernier message: 06/04/2006, 17h32
  3. Réponses: 3
    Dernier message: 07/03/2005, 16h08
  4. [Communication APPLET-SERVLET] string -> fichier
    Par meufeu dans le forum Applets
    Réponses: 10
    Dernier message: 06/08/2004, 15h45

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