premiers pas J2EE (Apache + Tomcat + Eclipse)

premiers pas J2EE (Apache + Tomcat + Eclipse) - Java - Programmation

Marsh Posté le 20-01-2005 à 15:52:31    

Je me met à apprendre les bases de J2EE. Et après avoir réussi à installer et configurer Apache, Tomcat et mod_jk sur Windows. Je veux tester ma premier servlet le classique BonjourMonde.
 

Code :
  1. import javax.servlet.*;
  2. import java.servlet.http.*;
  3. public class BonjourMonde extends HttpServlet {
  4.   public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
  5.     res.setContentType("text/html" );
  6.     PrintWriter out = res.getWriter();
  7.     out.println("<html><head></head><body>" );
  8. out.println("Hello world !!!" );
  9.     out.println("</body></html>" );
  10.   }
  11. }


 
Mais impossible de compiler. Je n'arrive pas à installer l'environement J2EE. Mon JDK 1.4 Marche très bien, j'ai installé le J2EE SDK Toolkit (100Mo) qui install plein de chose mais quand je compile j'ai toujours les messages me disant qu'il ne trouve pas les API javax.servlet et java.servlet.http...
En placant le fichier J2EE.jar dans mon repertoire lib du JDK, je n'ai plus que le deuxieme message d'erreur mais je n'arrive pas à trouver ces API. SVP, je ne trouve rien sur le site de SUN.


Message édité par ojbis le 26-01-2005 à 10:40:29
Reply

Marsh Posté le 20-01-2005 à 15:52:31   

Reply

Marsh Posté le 20-01-2005 à 15:56:58    

T'as pas un fichier %J2EE_HOME%\bin\j2ee.bat ?

Reply

Marsh Posté le 20-01-2005 à 15:59:24    

non, j'ai une dizaine de fichier .bat mais pas de J2EE.bat. Que doit il y avoir dans ce fichier ?

Reply

Marsh Posté le 20-01-2005 à 16:52:35    

tu as specifie que J2ee.jar etait dans ton classpath?


---------------
IVG en france
Reply

Marsh Posté le 20-01-2005 à 16:55:08    

en fait je n'ai pas de probleme avec j2EE.jar mais celui ci ne comporte que l'API javax.servlet.* mais c'est l'API java.servlet.http.* que le compilo et moi cherchons.
 
Comment savoir si j'ai bien recupéré toutes les API ?


Message édité par ojbis le 20-01-2005 à 16:55:35
Reply

Marsh Posté le 20-01-2005 à 17:00:42    

import javax.servlet.http.*;


Message édité par Bidem le 20-01-2005 à 17:01:02
Reply

Marsh Posté le 20-01-2005 à 17:06:15    

En effet ca marche mieu  :D  
Merci.  

Reply

Marsh Posté le 20-01-2005 à 17:43:11    

ojbis a écrit :

En effet ca marche mieu  :D  
Merci.


si tu veux eviter ce genre de conneries installes toi un bon ide, genre eclipse ou netbeans

Reply

Marsh Posté le 21-01-2005 à 09:19:35    

je telecharge donc eclipse qui sera surement plus leger et pratique que jbuilder fondation pour ce type de programme.

Reply

Marsh Posté le 21-01-2005 à 10:19:45    

J'ai maintenant bien compilé ma classe mais je n'arrive pas à la déployer.
 
Je l'ai placée dans le repertoire <%TOMCAT_HOME%>/webapps/Test/WEB-INF/classes
J'ai créé un fichier web.xml comme ca dans le repertoire WEB-INF
 

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">  
  3. <web-app>
  4. <display-name>TestTomcat</display-name>
  5. <servlet>
  6.  <servlet-name>BonjourMonde</servlet-name>
  7.  <servlet-class>BonjourMonde</servlet-class>
  8. </servlet>
  9. <servlet-mapping>
  10.  <servlet-name>BonjourMonde</servlet-name>
  11.  <url-pattern>/servlet/BonjourMonde</url-pattern>
  12. </servlet-mapping>
  13. </web-app>


 
Mais je n'arrive pas à accéder à http://127.0.0.1/Test/servlet/BonjourMonde
 
Je comprend pas. J'ai bien regardé ma doc, les exemples de tomcat qui marchent bien (donc pas de prob de config entre Tomcat et apache) mais je n'arrive pas à afficher mon Hello world !!!  :cry:  
 
C'est laborieux mon début :(


Message édité par ojbis le 21-01-2005 à 10:22:57
Reply

Marsh Posté le 21-01-2005 à 10:19:45   

Reply

Marsh Posté le 21-01-2005 à 10:36:29    

2eme conseil : mets tes classes dans un package !!!

Reply

Marsh Posté le 21-01-2005 à 11:45:20    

ojbis a écrit :

...je n'arrive pas à afficher mon Hello world !!!  :cry:  
 
C'est laborieux mon début :(


 
Quel genre de code d'erreur as-tu (404, 500 ...)?

Reply

Marsh Posté le 21-01-2005 à 14:13:24    

j'ai erreur 404
 

Code :
  1. Not Found
  2. The requested URL /Test/servlet/BonjourMonde was not found on this server.
  3. Apache/2.0.52 (Win32) mod_jk/1.2.8 Server at localhost Port 80


Message édité par ojbis le 21-01-2005 à 14:13:56
Reply

Marsh Posté le 21-01-2005 à 14:23:33    

essaie deja d'acceder ta page directement via tomcat
as tu mapper le chemin tomcat de ton appli dans apache?

Reply

Marsh Posté le 21-01-2005 à 14:23:36    

A tester :
 
- mettre un fichier html et voir si tu arrives à y accéder
- pareil avec un fichier jsp
 

Reply

Marsh Posté le 21-01-2005 à 14:32:54    

le probleme doit en effet venir du mappage de mon rep dans apache parcequ'avec un fichier html tout simple de texte:
 
j'y accede si je le pose dans le repertoire jsp-examples de webapps mais pas si je le met dans mon repertoire test toujours de webapps... je regarde la config d'apache

Reply

Marsh Posté le 21-01-2005 à 14:35:02    

comme l'a dit benou, ça marche pas si c'est pas dans un package :o

Reply

Marsh Posté le 21-01-2005 à 14:42:31    

Ah ca y est ca marche ! (mais ca n'a rien a voir avec le package, je vois pas le rapport pour un fichier de test :??: ) C'était juste qu'il fallait que je declare mon répertoire Test dans le fichier mod_jk.conf pour que le liens puisse ce faire. Bon maintenant je vais pouvoir commencer à bosser un peu plus (en faisant des packages ce coup ci  :D ). Merci

Reply

Marsh Posté le 21-01-2005 à 16:31:14    

Glod 2 a écrit :

comme l'a dit benou, ça marche pas si c'est pas dans un package :o


j'ai rien dit moi  :sweat:


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

Marsh Posté le 26-01-2005 à 10:29:15    

J'ai installé Eclipse et son plug-in Tomcat. J'ai refait un petit projet Tomcat sous Eclipse. Mais je n'arrive toujours pas à l'afficher, pourtant eclipse m'a bien modifié le fichier serveur.xml, le fichier mod_jk.conf, j'ai un fichire web.xml dans le répertoire WEB-INF du projet mais l'adresse
http://localhost/MonPremierProjetT [...] njourMonde me renvoie toujours un magnifique "NOT FOUND" et si je test en mettant un fichier HTML dans le répertoire web-inf, l'adresse
http://localhost/MonPremierProjetT [...] /test.html me renvoie un "Forbidden" !  
 
Y a t'il encore une config à faire pour autoriser l'accès à mon Repertoire WEB-INF ? si je met le fichier test.html à la racine de mon projet il s'affiche sans problème.
 
Je suis pourtant la méthode des tuto Eclipse et J2EE mais il doit y avoir un truc qui m'échappe :(

Reply

Marsh Posté le 26-01-2005 à 10:34:14    

l'accès au répertoire WEB-INF est interdit. Pourquoi tu veux y mettre des fichiers html ?
 
pour accéder à une servlet, 2 solutions :

  • la sale : aller dans le fichier web.xml de tomcat (repetoire conf) est décommenter la déclaration et le mapping de la servlet invoker. Tu pourras accéder à tes servlets à l'url : http://tonSite/taWebApp/servlet/le.nom.de.ta.Servlet
  • la propre : tu déclares chacune de tes servlets et des mapping dans le web.xml de ta webapp.


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

Marsh Posté le 26-01-2005 à 10:37:10    

le fichier html c'était juste pour faire un test. Et mon fichier web.xml du repertoire WEB-INF me semble juste:
 

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">  
  3. <web-app>
  4. <display-name>MonPremierProjetTomcat</display-name>
  5. <servlet>
  6.  <servlet-name>BonjourMonde</servlet-name>
  7.  <servlet-class>test.un.BonjourMonde</servlet-class>
  8. </servlet>
  9. <servlet-mapping>
  10.  <servlet-name>BonjourMonde</servlet-name>
  11.  <url-pattern>/MonPremierProjetTomcat/</url-pattern>
  12. </servlet-mapping>
  13. </web-app>


 

Reply

Marsh Posté le 26-01-2005 à 10:47:55    

non. ton urlPattern est pas bon.
 
là tu accederas à ta servlet à cette url :  
http://localhost/MonPremierProjetT [...] jetTomcat/
 
met plutot un truc du genre /Bonjour, pour pouvoir y accéder à l'url http://localhost/MonPremierProjetTomcat/Bonjour


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

Marsh Posté le 26-01-2005 à 11:11:37    

en effet ca marche. Donc pour être sure que j'ai bien compris :
 
dans mon fichier web.xml :
 
les lignes 5,6,7 et 8 attribuent le nom BonjourMonde à ma classe test.un.BonjourMonde
ensuite, les lignes 9,10,11,12 indiquent que la servlet BonjourMonde sera accessible via l'URL <url-pattern>
 
mais a quoi sert <display-name> ?
 
Donc si je tape l'URL: http://localhost/MonPremierProjetTomcat/Bonjour
 
1. localhost m'ammene sur mon serveur Apache + Tomcat
2. le /MonPremierProjetTomcat m'ammene dans mon repertoire de projet grace au <context path> du fichier server.xml de tomcat et à l'alias rajouté dans le fichier mod_jk.conf (le tout en auto par eclipse)
3. le fichier web.xml du repertoire web-inf indique que /bonjour correspond à la classe test.un.BonjourMonde dont le fichier .class est dans le sous repertoire classes du web-inf  
 
j'ai bon ?  :??:  
 

Reply

Marsh Posté le 26-01-2005 à 11:36:47    

oui, en gros c'est ca :)
 
le display-name est là "pour faire joli". Il peut-être utilisé par exemple pour une interface d'administration du serveur ou ce genre de chose ...


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

Marsh Posté le 26-01-2005 à 12:03:06    

Merci  :D  
 
Mais dernière petite question, quand je fais des modif dans le fichier web.xml, je suis obligé de relancer Apache et Tomcat pour que ce soit pris en compte ?

Reply

Marsh Posté le 26-01-2005 à 14:05:34    

ojbis a écrit :

Merci  :D  
 
Mais dernière petite question, quand je fais des modif dans le fichier web.xml, je suis obligé de relancer Apache et Tomcat pour que ce soit pris en compte ?


 
Oui

Reply

Marsh Posté le 26-01-2005 à 14:38:26    

non.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 26-01-2005 à 14:49:01    

alors finalement ? moi je redemarre mais je sais pas si c'est normal...

Reply

Marsh Posté le 26-01-2005 à 15:00:47    

si tu déclares ton contexte en tant que relaodable (si je me souviens bien), il va vérifier de façon cyclique si le web.xml a été modifié. Si c'est le cas, il arrête et redémarre la web-app. (ca scanne aussi WEB-INF/classes & WEB-INF/lib)
 
cf http://jakarta.apache.org/tomcat/t [...] ntext.html pour le parametrage


Message édité par benou le 26-01-2005 à 15:02:20

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

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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