Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1671 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Servlet] Pb de connexion au serveur

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Servlet] Pb de connexion au serveur

n°698841
fragsurpat​te
Posté le 14-04-2004 à 08:49:46  profilanswer
 

Bonjour,
 
j'ai créé une applet qui doit communiquer avec un serveur via les servlets
J'ai créé ma classe pour la servlet dont le code est le suivant :
 

Code :
  1. public class ServletMessage extends HttpServlet{
  2.   public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
  3.     BufferedReader entree = new BufferedReader(new InputStreamReader(request.getInputStream()));
  4.     String message = entree.readLine();
  5.     String inverse = "";
  6.     for (int i = message.length()-1; i>=0; i--) inverse +=message.charAt(i);
  7.       PrintWriter sortie = new PrintWriter(response.getOutputStream(), true);
  8.       sortie.println(inverse);
  9.   }
  10. }


 
Ensuite, j'ai créé la méthode qui permet de se connecter au serveur et d'envoyer un message. Cette méthode se trouve dans la classe principale de l'applet.
Voici le code de cette méthode :

Code :
  1. class exec implements ActionListener
  2.   {
  3.     public void actionPerformed(ActionEvent e) {
  4.      try {
  5.        URL url = new URL(getDocumentBase(),"ServletMessage" );
  6.        URLConnection connexion = url.openConnection();
  7.        connexion.setDoOutput(true);
  8.        PrintWriter sortie = new  PrintWriter(connexion.getOutputStream(),true);
  9.        sortie.println(t1.getText());
  10.        BufferedReader entree = new BufferedReader(new InputStreamReader(connexion.getInputStream()));
  11.        JOptionPane.showMessageDialog(p1,entree.readLine(),"Réponse",JOptionPane.INFORMATION_MESSAGE);
  12.      }
  13.      catch (IOException erreur) {
  14.        erreur.printStackTrace();
  15.        JOptionPane.showMessageDialog(p1,"Problème pour lancer le traitement","Erreur",JOptionPane.ERROR_MESSAGE);
  16.      }
  17.     }
  18.   }


 
Le problème est que quand je clique sur le bouton qui lance cette méthode, elle va directement dans le catch et donc m'ouvre la popup avec le message d'erreur.
 
J'ai regardé la java doc au niveau de la classe URL mais je ne ccomprend pas tout. Je pense que le pb vient de la connexion via le code :

Code :
  1. URL url = new URL(getDocumentBase(),"ServletMessage" );


"ServletMessage" est le nom de ma classe où je créé le servlet mais je ne suis pas sûr qui faille mettre celà.
 
Est ce que quelqu'un sait d'où vient mon pb ???

mood
Publicité
Posté le 14-04-2004 à 08:49:46  profilanswer
 

n°698858
pascal34
one point !
Posté le 14-04-2004 à 09:22:33  profilanswer
 


salut,
 
Il faut que tu références l'URL de mapping de ta servlet et pas le nom de la classe
 
dans le web.xml tu as du mettre qqch comme ça :
 
<servlet>
  <servlet-name>nom_de_ma_servlet</servlet-name>
  <servlet-class>package.de.ma.servlet.ServletMessage</servlet-class>
 
...
 
</servlet>
 
puis
 
<servlet-mapping>
  <servlet-name>nom_de_ma_servlet</servlet-name>
  <url-pattern>titi</url-pattern>
</servlet-mapping>
 
Et si ton appli web est déployée sous le contexte /toto, l'url d'accès à ta servlet est : http://[serveur]:[port]/toto/processMessage
 
De ce qui précède, pour que la construction de ton URL fonctionne comme tu l'as écrite il faudrais que l'applet sois incluse dans un HTM situé à une addresse du type http://[serveur]:[port]/toto/tutu.htm

n°698864
fragsurpat​te
Posté le 14-04-2004 à 09:40:21  profilanswer
 

Quand tu dis : nom_de_ma_servlet, c'est bien le nom de la classe ?
 
ex :

Code :
  1. <servlet>
  2.   <servlet-name>ServletMessage</servlet-name>
  3.   <servlet-class>projet_applet.ServletMessage</servlet-class>
  4. ...
  5. </servlet>


Sachant que le package que j'aiest projet_applet.
 
Sinon tu me met : <url-pattern>titi</url-pattern>
Il s'agit de l'URL que je lance pour avoir l'applet ?
Pour cà, moi je mets : http://localhost:8080/AppletServlet2/AppletServlet.jsp ?
 
Pour finir, j'ai mis l'applet dans un fichier jsp et non htm, est ce que ca peut poser pb ?
Voilà le code de mon fichier jsp :

Code :
  1. <html>
  2. <head>
  3.  <title>
  4.   Communication Applet - Servlet
  5.  </title>
  6. </head>
  7. <body>
  8. <h2 align="center">Communication Applet - Servlet</h2><hr>
  9. <p align="center">
  10.    <applet
  11.            codebase = "."
  12.            code     = "projet_applet.Applet_Test.class"
  13.            archive  = "Projet_Applet.jar"
  14.            name     = "Applet_Test"
  15.            width    = "1024"
  16.            height   = "768"
  17.            hspace   = "0"
  18.            vspace   = "0"
  19.            align    = "middle">
  20.       </applet>
  21.    </p>
  22.    </body>
  23. </html>


 
 

n°699922
pascal34
one point !
Posté le 15-04-2004 à 10:50:24  profilanswer
 

fragsurpatte a écrit a écrit :

Quand tu dis : nom_de_ma_servlet, c'est bien le nom de la classe ?
ex :

Code :
  1. <servlet>
  2.   <servlet-name>ServletMessage</servlet-name>
  3.   <servlet-class>projet_applet.ServletMessage</servlet-class>
  4. ...
  5. </servlet>






 
Le tag servlet-name (obligatoire) sert a donner un nom logique (indépendant du nom+package de ta classe) à ta servlet pour la référencer ailleurs dans le web.xml. ex: les tags servlet-mapping.
Donc tu peux l'appeler comme tu veux et même lui donner le nom de la classe.
 
Exemple de la déclaration de la servlet de stuts:
 

Code :
  1. ...
  2. <servlet-name>action</servlet-name>
  3. <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  4. ...


 
et le mapping :
 

Code :
  1. <servlet-mapping>
  2.         <servlet-name>action</servlet-name>
  3.         <url-pattern>*.do</url-pattern>
  4. </servlet-mapping>


 
 

fragsurpatte a écrit a écrit :

 

Code :
  1. Sinon tu me met : <url-pattern>titi</url-pattern>


Il s'agit de l'URL que je lance pour avoir l'applet ?
Pour cà, moi je mets : http://localhost:8080/AppletServlet2/AppletServlet.jsp ?




 
Non, il s'agit de l'url pour accéder à la servlet.
D'après l'url d'appel de la page contenant l'applet, je déduis que le contexte de ton module web est /AppletServlet2. avec le url-pattern ci-dessus, tu accède à la servlet en tapant http://localhost:8080/AppletServlet2/titi
 
Enfin, si tu peux mettre ton applet dans la JSP car elle va être convertie en HTML avant d'être renvoyée au navigateur.


Message édité par pascal34 le 15-04-2004 à 11:01:09

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Servlet] Pb de connexion au serveur

 

Sujets relatifs
trouver son temps de connexion internet et l'affichercommunication servlet/applet
Java - Connexion MySQLUne servlet qui met à jour un formulaire [résolu]
Un parser validant dans une servlet qui marche ?sql serveur et serveur distant/lié
Configuration serveur d'application de Dreamweaver avec FREEafficher l'etat d'un serveur sur une page woueb
JSP, aspirateur dynamique, = faire un proxy avec 1 servlet ?Quel est le port par default du serveur apache dans easy php
Plus de sujets relatifs à : [Servlet] Pb de connexion au serveur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR