[Java][Tomcat][JSP] Problème de configuration de Tomcat

Problème de configuration de Tomcat [Java][Tomcat][JSP] - Java - Programmation

Marsh Posté le 08-04-2004 à 14:01:50    

Bonjour tout le monde !!
 
Je vous écris car j'ai un petit pb de configuration du serveur Tomcat.
 
Contexte : J'ai créé une applet et je voudrais la faire communiquer avec mon serveur via Servlet.
J'ai donc télécharger Tomcat.Je voulais faire des tests simples pour voir si mon applet se chargeait normalement sous Tomcat.
J'ai créé mon applet sous JBuilder et elle fonctionne quand je l'utilise dans un fichier html.  
Quand j'ai créé mon projet sous JBuilder, ce dernier a créé l'arborescence suivante:
    Projet_Applet (rep)  
        - bak (rep)  
        - classes (rep)  
           -- package_projet (rep)  
           -- projet_applet (rep)  
           -- *.class (endroits où se trouve toutes mes classes dont la classe principale)  
        - doc (rep)  
        - src (rep)  
        - Projet_Applet.jpx
 
Ensuite, j'ai créé mon fichier jsp pour faire fonctionner mon applet avec Tomcat.
Le fichier jsp est bon car identique à un exemple trouvé sur le net.
 
J'ai mis mon fichier jsp ainsi que le répertoire projet_applet (repertoire se trouvant dans Projet_Applet/classes sous JBuilder) dans le répertoire ROOT de l'arborescence Tomcat.
Et quand je lance Tomcat et que je vias à l'@ :
http://nom_de_ma_machine:8080/Appl [...] ervlet.jsp, j'ai l'erreur suivante :
 
 
charger : classe Applet_Test.class introuvable.  
 
java.lang.ClassNotFoundException: Applet_Test.class  
 
   at sun.applet.AppletClassLoader.findClass(Unknown Source)  
 
   at java.lang.ClassLoader.loadClass(Unknown Source)  
 
   at sun.applet.AppletClassLoader.loadClass(Unknown Source)  
 
   at java.lang.ClassLoader.loadClass(Unknown Source)  
 
   at sun.applet.AppletClassLoader.loadCode(Unknown Source)  
 
   at sun.applet.AppletPanel.createApplet(Unknown Source)  
 
   at sun.plugin.AppletViewer.createApplet(Unknown Source)  
 
   at sun.applet.AppletPanel.runLoader(Unknown Source)  
 
   at sun.applet.AppletPanel.run(Unknown Source)  
 
   at java.lang.Thread.run(Unknown Source)  
 
Caused by: java.io.IOException: open HTTP connection failed.  
 
   at sun.applet.AppletClassLoader.getBytes(Unknown Source)  
 
   at sun.applet.AppletClassLoader.access$100(Unknown Source)  
 
   at sun.applet.AppletClassLoader$1.run(Unknown Source)  
 
   at java.security.AccessController.doPrivileged(Native Method)  
 
   ... 10 more  
 
D'après moi, le pb est que j'ai mis dans un mauvais endroit mon fichier jsp ainsi que les classes de mon applet.
 
Donc a quel endroit dois je les mettre ?????
 
PS : j'ai également mis à jour la variable d'environnement CLASSPATH et JAVA_HOME.
 
Merci de votre aide !!

Reply

Marsh Posté le 08-04-2004 à 14:01:50   

Reply

Marsh Posté le 08-04-2004 à 16:35:51    

dans JBuilder crée un WebModule
et de la ajoute une page jsp ..
edite là et mis y le code de ta page jsp .. lance .. et logiquement tu devrais au moins voir ta page jsp..

Reply

Marsh Posté le 08-04-2004 à 23:14:29    

je comprend pas : c'est ta jsp qui crache l'erreur ??
pourquoi ta jsp cherche à charger l'applet ? :/

Reply

Marsh Posté le 13-04-2004 à 09:28:14    

la viper a écrit :

dans JBuilder crée un WebModule
et de la ajoute une page jsp ..
edite là et mis y le code de ta page jsp .. lance .. et logiquement tu devrais au moins voir ta page jsp..


Je ne comprend pas ce que tu veux dire par WebModule.
Je débute en Tomcat et JSp donc .......

Reply

Marsh Posté le 13-04-2004 à 09:34:38    

benou a écrit :

je comprend pas : c'est ta jsp qui crache l'erreur ??
pourquoi ta jsp cherche à charger l'applet ? :/


 
J'ai créé une applet. Je souhaite faire communiquer mon applet avec le serveur Tomcat car j'aurais besoin, un peu plus tard dans mon développement de faire envoyer des fichiers au serveur Tomcat par le biais de l'applet.
 
Donc j'ai créé mon applet mais également un fichier jsp dont le code est le suivant :
 

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. <jsp:plugin
  11.  type     = "applet"
  12.  code     = "Applet_Test.class"
  13.  archive  = "Projet_Applet.jar"
  14.  name     = "Applet_Test"
  15.  width    = "1024"
  16.     height   = "768" >
  17.    </jsp:plugin>
  18.    </p>
  19.    </body>
  20. </html>


 
Mon archive jar a été créé via JBuilder et contient toutes les classes nécessaires à son bon fonctionnement (j'ai testé mon applet avec son archive dans une page html).
 
Les variables d'environnement sont bonnes. J'y ai mis le chemin pour Tomcat, pour l'archive, etc...
 
Si quelqu'un a une idée.
 
PS : pour la config Tomcat, j'ai créé un répertoire AppletServlet dans le répertoire webapps de Tomcat.
Dans ce répertorie AppletServlet, j'y ai mis mon fichier jsp, mon archive. J'ai également mis un répertoire WEB-INF où il y a un autre répertoire classes dans lequel il y a la class ServletMessage.class.
 
voilà tout ce que je pouvais vous dire sur mon projet.
 
AIDEZ MOI, SVP

Reply

Marsh Posté le 13-04-2004 à 10:16:26    

ton applet est dans un package, non ?
il faut que tu donnes le nom complet de la classe dans l'attribut "code"


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 13-04-2004 à 10:22:12    

benou a écrit :

ton applet est dans un package, non ?
il faut que tu donnes le nom complet de la classe dans l'attribut "code"


 
Tu veux dire que je dois mettre ma classe Applet_Test.class dans un package genre :
 
projet_applet/Applet_Test.class
 
Ce qui signifira que je mettrais :
 
code = projet_applet/Applet_Test.class
 
c ca ?

Reply

Marsh Posté le 13-04-2004 à 10:28:17    

Bon, j'ai essayé de faire ce que tu m'as dit.
 
J'ai mis dans mon arborescence Tomcat un répertoire de plus (projet_applet).
Je l'ai mis dans webapps/AppletServlet .
Et ce répertoire contient toutes les classes nécessaires pour l'applet.
 
Mais le pb est toujours identique.

Reply

Marsh Posté le 13-04-2004 à 10:52:35    

ouais mais là non ... il te manque des connaissance de base en java et sur la façon dont fonctionne la "recherche" de classes.  
regarde ce topic : http://forum.hardware.fr/forum2.ph [...] 88&cat=10. Ca parle du classpath de façon statique mais ca fonctionne pareil sous tomcat sauf que celui-ci est construit dynamiquement.
 
en bref. Tu dois avoir une arborescence de répertoire identique à ton arborescence de package : un package -> un rep, une classe -> un fichier.class. Les noms doivent être identique.
 
Sous tomcat, le répertoire WEB-INF/classes sera ajouté au classe passe de ton application web => c'est ce repertoire qui doit être la racine de tes classes.


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 13-04-2004 à 11:13:02    

Donc si je comprend bien ce que tu me dis, je dois mettre toutes les classes utilisées dans mon applet dans le répertoire WEB-INF/classes, c ca ?

Reply

Marsh Posté le 13-04-2004 à 11:13:02   

Reply

Marsh Posté le 13-04-2004 à 11:25:18    

fragsurpatte a écrit :

Donc si je comprend bien ce que tu me dis, je dois mettre toutes les classes utilisées dans mon applet dans le répertoire WEB-INF/classes, c ca ?


soit ca, soit mettre le jar de ton applet dans WEB-INF/lib.
Ca revient au même ...
 
une remarque : le nom de ta classe devrait plutot ressembler à ca : code = projet_applet.Applet_Test
 
[:icon4] ne pas confondre le chemin vers le fichier et la classe ...


Message édité par benou le 13-04-2004 à 11:25:24

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 13-04-2004 à 11:28:19    

fragsurpatte a écrit :

Donc si je comprend bien ce que tu me dis, je dois mettre toutes les classes utilisées dans mon applet dans le répertoire WEB-INF/classes, c ca ?


 
oui c'est ca et dans le sous-répertoire qui correspond au nom du package
les classes qui sont directement dans le répertoire "classes" (et donc sans package) ne sont pas prises en compte

Reply

Marsh Posté le 13-04-2004 à 11:33:03    

mathix a écrit :


les classes qui sont directement dans le répertoire "classes" (et donc sans package) ne sont pas prises en compte


 :heink:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 13-04-2004 à 11:50:18    

benou a écrit :


soit ca, soit mettre le jar de ton applet dans WEB-INF/lib.
Ca revient au même ...
 
une remarque : le nom de ta classe devrait plutot ressembler à ca : code = projet_applet.Applet_Test
 
[:icon4] ne pas confondre le chemin vers le fichier et la classe ...


 
Ok.
J'ai mis toutes mes classes utilisées dans webapps/AppletServlet/WEB-INF/classes.
J'ai mis mon archive dans webapps/AppletServlet/lib.
Le code de mon fichier jsp est le suivant :

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     = "classes/Applet_Test.class"
  13.            archive  = "lib/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>


 
Voici l'erreur que j'ai :

Code :
  1. charger : classe classes/Applet_Test.class introuvable.
  2. java.lang.ClassNotFoundException: classes.Applet_Test.class
  3. at sun.applet.AppletClassLoader.findClass(Unknown Source)
  4. at java.lang.ClassLoader.loadClass(Unknown Source)
  5. at sun.applet.AppletClassLoader.loadClass(Unknown Source)
  6. at java.lang.ClassLoader.loadClass(Unknown Source)
  7. at sun.applet.AppletClassLoader.loadCode(Unknown Source)
  8. at sun.applet.AppletPanel.createApplet(Unknown Source)
  9. at sun.plugin.AppletViewer.createApplet(Unknown Source)
  10. at sun.applet.AppletPanel.runLoader(Unknown Source)
  11. at sun.applet.AppletPanel.run(Unknown Source)
  12. at java.lang.Thread.run(Unknown Source)
  13. Caused by: java.io.IOException: open HTTP connection failed.
  14. at sun.applet.AppletClassLoader.getBytes(Unknown Source)
  15. at sun.applet.AppletClassLoader.access$100(Unknown Source)
  16. at sun.applet.AppletClassLoader$1.run(Unknown Source)
  17. at java.security.AccessController.doPrivileged(Native Method)
  18. ... 10 more


 
Mais je me suis qu'il y avait quelquechose de bizarre à mettre classes/ et lib/ dans le fichier jsp donc je les ai viré et j'ai mis ca ds 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     = "classes/Applet_Test.class"
  13.            archive  = "lib/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>


 
Et j'ai l'erreur suivante :
 

Code :
  1. java.io.FileNotFoundException: http://localhost:8080/AppletServlet/Projet_Applet.jar
  2. at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
  3. at sun.plugin.net.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
  4. at sun.plugin.net.protocol.http.HttpUtils.followRedirects(Unknown Source)
  5. at sun.plugin.cache.CachedJarLoader.isUpToDate(Unknown Source)
  6. at sun.plugin.cache.CachedJarLoader.loadFromCache(Unknown Source)
  7. at sun.plugin.cache.CachedJarLoader.load(Unknown Source)
  8. at sun.plugin.cache.JarCache.get(Unknown Source)
  9. at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
  10. at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
  11. at sun.misc.URLClassPath$JarLoader.getJarFile(Unknown Source)
  12. at sun.misc.URLClassPath$JarLoader.<init>(Unknown Source)
  13. at sun.misc.URLClassPath$3.run(Unknown Source)
  14. at java.security.AccessController.doPrivileged(Native Method)
  15. at sun.misc.URLClassPath.getLoader(Unknown Source)
  16. at sun.misc.URLClassPath.getLoader(Unknown Source)
  17. at sun.misc.URLClassPath.getResource(Unknown Source)
  18. at java.net.URLClassLoader$1.run(Unknown Source)
  19. at java.security.AccessController.doPrivileged(Native Method)
  20. at java.net.URLClassLoader.findClass(Unknown Source)
  21. at sun.applet.AppletClassLoader.findClass(Unknown Source)
  22. at java.lang.ClassLoader.loadClass(Unknown Source)
  23. at sun.applet.AppletClassLoader.loadClass(Unknown Source)
  24. at java.lang.ClassLoader.loadClass(Unknown Source)
  25. at sun.applet.AppletClassLoader.loadCode(Unknown Source)
  26. at sun.applet.AppletPanel.createApplet(Unknown Source)
  27. at sun.plugin.AppletViewer.createApplet(Unknown Source)
  28. at sun.applet.AppletPanel.runLoader(Unknown Source)
  29. at sun.applet.AppletPanel.run(Unknown Source)
  30. at java.lang.Thread.run(Unknown Source)
  31. charger : classe Applet_Test.class introuvable.
  32. java.lang.ClassNotFoundException: Applet_Test.class
  33. at sun.applet.AppletClassLoader.findClass(Unknown Source)
  34. at java.lang.ClassLoader.loadClass(Unknown Source)
  35. at sun.applet.AppletClassLoader.loadClass(Unknown Source)
  36. at java.lang.ClassLoader.loadClass(Unknown Source)
  37. at sun.applet.AppletClassLoader.loadCode(Unknown Source)
  38. at sun.applet.AppletPanel.createApplet(Unknown Source)
  39. at sun.plugin.AppletViewer.createApplet(Unknown Source)
  40. at sun.applet.AppletPanel.runLoader(Unknown Source)
  41. at sun.applet.AppletPanel.run(Unknown Source)
  42. at java.lang.Thread.run(Unknown Source)
  43. Caused by: java.io.IOException: open HTTP connection failed.
  44. at sun.applet.AppletClassLoader.getBytes(Unknown Source)
  45. at sun.applet.AppletClassLoader.access$100(Unknown Source)
  46. at sun.applet.AppletClassLoader$1.run(Unknown Source)
  47. at java.security.AccessController.doPrivileged(Native Method)
  48. ... 10 more


 
Je n'y comprend pas grand chose. Est ce que quelqu'un peut m'aider ???

Reply

Marsh Posté le 13-04-2004 à 11:51:43    

Avant que vous me disiez quelquechose, le deuxième code pour le fichie jsp que je vous ai montré est faux.
J'ai bien enlevé /classes et /lib.
Excusez moi

Reply

Marsh Posté le 13-04-2004 à 12:07:13    

Bon ca fonctionne.
 
Pour ceux que ca intéresse, j'ai fait la méthode suivante :
J'ai créer un nouveau répertoire dans webapps appelé AppletServlet2.  
Dans ce répertoire créé, j'ai mis :  
- Projet_Applet.jar  
- AppletServlet.jsp  
- Et un répertoire WEB-INF qui contient un répertoire classes dans lequel il y a ServletMessage.class (qui est la classe de mon servlet)  
- WEB-INF contient aussi le fichier web.xml  
 
J'ai signé mon applet dans Tomcat et ca fonctionne.  
 
Voici 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>


 
Merci bcq à ceux qui ont essayé de m'aider. :hello:  :hello:  :hello:  :hello:  :hello:  :hello:  :hello:  
 :love:  :love:  :love:  :love:  :love:

Reply

Marsh Posté le 13-04-2004 à 14:34:28    

un peu facile en utilisant le tag applet ;)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 13-04-2004 à 15:12:36    

benou a écrit :

un peu facile en utilisant le tag applet ;)


 
Pourquoi tu dis celà ?
 
Je veux bien essayer une autre technique si il y en a une.  
Avec <jsp plugin ...., ca ne fonctionnait pas donc j'ai essayé celà. Donc si c pas top, ca ne me gêne pas de mettre autre chose !!!!!!! :??:  :??:  :??:  :??:  :??:  :??:  :??:

Reply

Marsh Posté le 13-04-2004 à 17:30:00    

perso je sais pas ce qu'il fait le jsp: plugin, mais vu que c'est lui qui générait l'exception ClassNotFound il devait faire des traitements côté serveur sur l'applet (vérifier la présence de la classe, peut être).
 
En utilisant <applet>, tu contournes le problème.  
 
J'y vois aucun problème ... en fait, il faudrait que je me renseigne pour savoir à quoi sert de tag jsp: plugin. J'aurais pas pensé que ca executait du code côté serveur. Je pensais que c'était une méthode générique pour insérer des "objets" dans une page. Dans le cas d'une applet, je croyais que ca réécrivais bêtement le tag applet, mais visiblement ca fait des choses supplémentaires.


Message édité par benou le 13-04-2004 à 17:30:37

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 14-04-2004 à 08:37:05    

ok je vois.
J'espère que mettre un tag applet ne changera pas l'intéret d'utiliser les servlets. Je ne pense pas car ca n'a pas trop de rapport mais bon.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed