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

Applets Java Discussion :

[Servlet][Applet] URLConnection


Sujet :

Applets Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut [Servlet][Applet] URLConnection
    L'objectif est qu'un utilisateur s'identifie via un Applet (login ,mots de passe)
    L'applet doit ensuite communiqué ces informations a la servlet chargé de verifié si ces infos sont valide dans une base de données !!

    Mon appliquation utilise STRUTS
    Mon probleme c'est que quand je j'ouvre la connection entre l'applet et la servlet ni la methode get ni la methode post de la servlet n'est exécuté !!

    Et pourtant l'url passé en paramètre lors de la création de l'objet URL est bonne puisque quand je la mets tel quel dans un navigateur la servlet est executé !!!!

    Au secours j'y comprend plus rien !!!!
    UML avec VIOLET

  2. #2
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Pourquoi utilises tu une applet pour faire ton authentification ???

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Je vois que Monsieur est curieux
    La raison est bonne en fait l'authentification se fais via une carte a puce j'ai donc cette applet qui utilise une dll qui permet de se servire de la carte mais ca c'est une autre histoire!!!
    une fois que l'applet a recupéré les données de la carte pour le moment je n'arrive pas a les transféré a la servlet peut etre a cause de STRUTS , de Tomcat 4.0 ou moi !!!
    UML avec VIOLET

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    code de l'applet:

    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
     
    try{
     
     
          URL urlServlet = new URL("http://localhost:8080/et5v1.0/InfoPost"); 
          HttpURLConnection con = (HttpURLConnection)urlServlet.openConnection(); 
          con.setDoInput(true); 
          con.setDoOutput(true); 
          con.setUseCaches(false); 
          con.setRequestMethod("POST");
          con.setRequestProperty("Content-Type", "application/x-java-serialized-object"); 
     
          System.out.println("tentative de connexion post "+con);
     
     
          System.out.println(con.getResponseCode()); 
     
             // donnee a envoyer 
             String input = new String ("Salut"); 
     
             // Envoyer le texte saisi 
     
             OutputStream outstream = con.getOutputStream(); 
             ObjectOutputStream oos = new ObjectOutputStream(outstream); 
             oos.writeObject(input); 
             oos.flush(); 
             oos.close(); 
     
                    con.connect();                                                                                                                                                           
     
     
          } catch (Exception ex) { 
             ex.printStackTrace(); 
          }
    et coté servlet (mais de toute façon elle ne se lance pas donc a priori le probleme se situe dans l'applet ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    			System.out.println("DOPOST\n");
    			InputStream in = request.getInputStream(); 
    			ObjectInputStream inputFromApplet = new ObjectInputStream(in); 
    			String reponse = (String)inputFromApplet.readObject();
    voila
    UML avec VIOLET

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Oops pardon avec le code que tu voi si dessus la servlet est lancé mais pas comme il le faudrais elle est lancé quand je fais con.getResponseCode() qui en passant retourne la chaine vide !!!!
    UML avec VIOLET

  6. #6
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Tu envoies donc un flux sérialisé à ta servlet c çà ?
    Tu ne lui passe pas de paramètre particulier ?
    Quand tu dis que ton appel a ta servlet fonctionne ? Comment fais tu ton appel ?
    As tu essayé de supprimer la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    con.setRequestProperty("Content-Type", "application/x-java-serialized-object");

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Oui dans se cas c'est des objets serialisé mais j'ai deja essayé flux d'octet sans plus de succes!!

    Pas de parametre particulier ?? je comprend pas je veux faire passé dans un premier temps une chaine de caractère puis deux !!

    EN fait l'appel ne fonctionne pas enfin pour moi la connexion est etablie qd on fais url.openConnection() se qui doit lancé la servlet hors rien ne se passe par contre quand je fais un getResponseCode() la chaine de caractere DOPOST que je demande d'afficher dans ma servlet s'affiche dans la console j'en ai deduit que la servlet etait lancé !!!

    Le probleme c'est que la servlet plante parce qu'elle veut lire quelque chose sur le flux d'entré mais que rien ne viens alors que mon applet ecrit bien dans le flux de sorti !!

    Enfin bon de toute façon dans tout les codes que j'ai vu concernant la communication Applet Servlet jamais on ne fais appel a getResponseCode pour lancé la connection !!! Et selon les auteurs leurs code fonctionnent bien mais pourquoi chez moi ca marche pas ca c un mystere et je commence a vouloir jeté mon pc par la fenetre !!!!
    UML avec VIOLET

  8. #8
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    J'avoue ne jamais avoir essayé, mais je comprends pas bien le truc.
    Si je ne m'abuse le protol HTTP est un mode dit déconnecté, appel -> réponse et c tout.
    On ne vérifie rien.
    Donc quand tu fais ton openConnection, normalement tu dois appeler ta servlet (en tout cas tu dois normalement passé dans la méthode doGet) de ta servlet.
    Est-ce le cas ? As tu développé un doGet ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    oui dans doGet pour je fais un appel a doPost !!!!
    voila doGet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    		try{
     
    		System.out.println("DO GET");
    		doPost(request,response);
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    Mais doGet n'est pas executé non plus la chaine Do GET n'apparait pas non plus dans la console !!!!
    Et pourtant l'url est bonne lorsque je fais un copier coller de l'url du code de l'apllet dans un browser DOGET est lancé puis doPost bon ca plante(c normal) mais c lancé !!!
    UML avec VIOLET

  10. #10
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    377
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 377
    Points : 356
    Points
    356
    Par défaut
    Tu as essayé de mettre ton avant ton pour voir on s'est jamais.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Je viens d'éssayer bah ca marche pas non plus
    UML avec VIOLET

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Bon bah je vais continuer a chercher si je trouve j'ajouterai la solution au post!!!

    C'est surement un truc tres C..
    UML avec VIOLET

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    509
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 509
    Points : 568
    Points
    568
    Par défaut
    Pour ceux que ca interesse j'ai finit par trouver je pense que le but est de construire d'abord une requete (avec ou sans parametre) puis d'attendre une reponse de la servlet enfin bon ca sera plus comprehensible avec le code la requete est envoyé (enfin je pense ) quand je fais un getResponseCode() :
    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
     
          URL urlServlet = new URL("http://localhost:8080/et5v1.0/InfoPost"); 
          HttpURLConnection con = (HttpURLConnection)urlServlet.openConnection(); 
          con.setDoInput(true); 
          con.setDoOutput(true); 
          con.setUseCaches(false); 
          con.setRequestMethod("POST");
          con.setRequestProperty("Content-Type", "application/octet-stream"); 
     
          System.out.println("tentative de connexion post "+con);
     
     
     
    	 con.connect();
             // Envoyer le texte saisi 
     
     
     
    		  OutputStream outstream = con.getOutputStream();
    		  ObjectOutputStream oos = new ObjectOutputStream(outstream); 
    		  oos.writeObject(typeClient);
    		  oos.writeObject(username);
    		  oos.flush(); 
    		  oos.close(); 
     
    	 if(con.getResponseCode() == HttpURLConnection.HTTP_OK)//c'est ici que la servlet commence sont boulot je pense que getResponseCode() est une methode bloquante qui attend la fin de la servlet 
    	 { 
    		  System.out.println("on est connecté");
    		  System.out.println("la requete a été envoyé");
    		  System.out.println(url);
    		  appcontext.showDocument(new URL(url));
    	}else{
    		System.out.println("Connection echoué");	
    	}
    	con.disconnect();
    UML avec VIOLET

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

Discussions similaires

  1. [debutant] servlet/applet sur TOMCAT
    Par daed dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 28/09/2006, 13h21
  2. netbeans- servlet/applet probleme securité
    Par daed dans le forum NetBeans
    Réponses: 2
    Dernier message: 25/09/2006, 04h50
  3. communication servlet/applet via le protocole https
    Par hlaura dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 18/07/2006, 17h41
  4. [JSP][Servlet][Applet] communication Applet-Servlet-Jsp
    Par williamv dans le forum Applets
    Réponses: 1
    Dernier message: 06/04/2006, 16h32
  5. [servlet][applet] communication pour echanger des infos
    Par jeromejanson dans le forum Applets
    Réponses: 11
    Dernier message: 01/07/2005, 12h14

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