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

  FORUM HardWare.fr
  Programmation
  Java

  [Servlet/Tomcat] : Servlet indisponible (erreur 503)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Servlet/Tomcat] : Servlet indisponible (erreur 503)

n°635260
[ ZeD ]
Désigné volontaire
Posté le 08-02-2004 à 18:05:47  profilanswer
 

Hello,
 
voilà j'ai une applet qui est sensée envoyer une chaine de carctères à une servlet, celle-ci envoie la chaine à un service qui la renvoie inversée.
 
problème : quand l'applet essaie de se connecter à la servlet, j'ai l'erreur suivante :
 

127.0.0.1 - - [08/Feb/2004:17:48:32 1000] "POST /servlet/ServletSocket HTTP/1.1" 503 720


2004-02-08 17:48:32 StandardWrapper[:ServletSocket]: Marking servlet ServletSocket as unavailable
2004-02-08 17:48:32 StandardWrapperValve[ServletSocket]: Servlet ServletSocket is currently unavailable


 
Voici le code qui appelle la servlet :

Code :
  1. private void envoyerMouseClicked(java.awt.event.MouseEvent evt) {
  2.         try {
  3.             URL urlServlet = new URL(getDocumentBase(), "servlet/ServletSocket" );
  4.             URLConnection connexion = urlServlet.openConnection();
  5.             connexion.setDoOutput(true);
  6.                        
  7.             ObjectOutputStream sortie = new ObjectOutputStream(connexion.getOutputStream());
  8.             sortie.writeObject(new Transmission(1234, saisie.getText(), true));
  9.             ObjectInputStream entree = new ObjectInputStream(connexion.getInputStream());
  10.             Transmission transmission = (Transmission) entree.readObject();
  11.             message.setText("OK" );
  12.             if (transmission.isOk()) message.setText(transmission.getMessage());
  13.             else saisie.setText(transmission.getMessage());
  14.         }
  15.         catch (Exception erreur) { System.err.println("Erreur : " + erreur); }
  16.     }


 
et la méthode doPost de la servlet en question :

Code :
  1. public void doPost(HttpServletRequest request, HttpServletResponse response)
  2.     throws ServletException, IOException {
  3.         try {
  4.             System.out.println("OK." );           
  5.             ObjectInputStream entree = new ObjectInputStream(request.getInputStream());
  6.             Transmission transmission = (Transmission) entree.readObject();
  7.             int numPort = transmission.getPort();
  8.             try {
  9.                 Socket cnx = new Socket("localhost", numPort);
  10.                 PrintWriter envoie = new PrintWriter(cnx.getOutputStream(), true);
  11.                 envoie.println(transmission.getMessage());
  12.                 BufferedReader reception = new BufferedReader(new InputStreamReader(cnx.getInputStream()));
  13.                 transmission = new Transmission(numPort, reception.readLine(), true);
  14.             }
  15.             catch (Exception erreur) {
  16.                 transmission = new Transmission(numPort, erreur.getMessage(), false);
  17.             }
  18.             ObjectOutputStream sortie = new ObjectOutputStream(response.getOutputStream());
  19.             sortie.writeObject(transmission);
  20.         }
  21.         catch (Exception erreur) { System.err.println("Erreur : " + erreur); }       
  22.     }


 
help !  :cry:
 
et merci d'avance  :jap:

mood
Publicité
Posté le 08-02-2004 à 18:05:47  profilanswer
 

n°635513
krosso
j'suis à la bourre
Posté le 08-02-2004 à 23:00:26  profilanswer
 

Ta servlet le protocole qu'elle comprend c'est HTTP.
Alors si tu veux discuter avec elle, utilise ce protocole plutôt que de lui envoyer des objets sérialisés.
Regarde comment on envoi des données via une requête POST.
 
Si tu tiens absolument à utiliser des objets sérialisés, oublie les servlets et écris plutôt un serveur RMI.
 
K.
 

n°635559
[ ZeD ]
Désigné volontaire
Posté le 09-02-2004 à 00:21:17  profilanswer
 

krosso a écrit :


Si tu tiens absolument à utiliser des objets sérialisés, oublie les servlets et écris plutôt un serveur RMI.


ben je voudrais bien j'ai pas le droit  :p
 
je dois écrire une application 3-tiers qui doit lire/écrire dans une BDD, donc g pas trop le choix je crois  :-/

n°636418
[ ZeD ]
Désigné volontaire
Posté le 09-02-2004 à 20:12:27  profilanswer
 

UP!
 
bon j'ai remarqué que mon applet bloquait à cette ligne là :
 

Code :
  1. ObjectInputStream entree = new ObjectInputStream(connexion.getInputStream());


 
mais bon, ça me dit toujours pas à quoi est due mon erreur 503 ni comment la résoudre, help!  :cry:

n°636454
krosso
j'suis à la bourre
Posté le 09-02-2004 à 20:55:17  profilanswer
 

krosso a écrit :

Regarde comment on envoi des données via une requête POST.

n°636479
[ ZeD ]
Désigné volontaire
Posté le 09-02-2004 à 21:23:33  profilanswer
 


oui, comme ça : http://emmanuel-remy.developpez.co [...] tm#servlet
et comme ça : http://www.j-nine.com/pubs/applet2servlet/listing3.txt
 
bref ça a rien d'extraordinaire comme utilisation...


Message édité par [ ZeD ] le 09-02-2004 à 21:24:11
n°636569
krosso
j'suis à la bourre
Posté le 09-02-2004 à 22:46:20  profilanswer
 

bon, si tu tiens à suivre cet exemple (je continue de penser que HTTP c'est pas fait pour ça, mais bon...).
 
à première vue dans ton applet il te manque au moins un  
connexion.setDoInput(true);  
et un  
connexion.setRequestProperty("Content-Type", "application/x-java-serialized-object" );
 
à première vue...

n°636573
krosso
j'suis à la bourre
Posté le 09-02-2004 à 22:48:16  profilanswer
 

et puis aussi des flush() et des close() sur tes streams.

n°638356
[ ZeD ]
Désigné volontaire
Posté le 11-02-2004 à 00:15:58  profilanswer
 

bon bah ça marche finalement, l'erreur 503 était due au fait que la servlet était pas compilée dans le bon rép. ... *hem*
 
merci quand même  ;)

n°638426
the real m​oins moins
Posté le 11-02-2004 à 02:47:58  profilanswer
 

[ ZeD ] a écrit :


ben je voudrais bien j'ai pas le droit  :p
 
je dois écrire une application 3-tiers qui doit lire/écrire dans une BDD, donc g pas trop le choix je crois  :-/
 

et le rapport c'est quoi? [:mlc]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le 11-02-2004 à 02:47:58  profilanswer
 

n°638720
[ ZeD ]
Désigné volontaire
Posté le 11-02-2004 à 12:23:36  profilanswer
 

Citation :

et le rapport c'est quoi?


le rapport c'est que pour faire ça j'ai pas d'autres choix que d'utiliser des servlets il me semble.


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

  [Servlet/Tomcat] : Servlet indisponible (erreur 503)

 

Sujets relatifs
Que faire pour lancer une Servlet "de base"?Tomcat 5
[Oracle] erreur ORA-27101erreur de lecture de cellule, je sais pas trop pourquoi :-/
[J2EE] Explications sur tomcat et jonas[JTA] "Sous-transaction" depuis une Servlet ...
Method init() de Tomcat executé deux fois ?! [RESOLU][php]une erreur que je ne comprend pas[reglé]
phpmyadmin PMA database erreur!Erreur Automation
Plus de sujets relatifs à : [Servlet/Tomcat] : Servlet indisponible (erreur 503)


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