Bonjour,
En préambule, je dirais que Java n'est pas ma tasse de thé !
Plus précisément, j'ai eu une UE de Java + JavaEE au CNAM il y a plusieurs années qui n'est plus qu'un lointain souvenir.
Une (vieille) application "Java(TM) SE Runtime Environment (build 1.6.0_29-b11)" sous Tomcat6 tourne actuellement sur un serveur.
L'arborescence actuelle est celle-ci :
css/
doc/
images/
js/
jsp/
-- affiche.jsp
-- initConnexion.jsp
-- [autres fichiers jsp]
META-INF/
WEB-INF/
-- classes/
---- acces/
------ ConnectionPerClient.class
------ [autres classes]
---- admin/
---- commun/
---- fiches/
---- Filtre/
---- sorties_pdf/
---- voeux/
-- Fichiers_temporaires/
-- lib/
-- web.xml
-- XSL/
XSL/
L'accès à l'application se fait par une page de login à l'URL suivante : [serveur/appli]jsp/affiche.jsp?index=initConnexion et le paramètre index entraîne l'inclusion de initConnexion.jsp dans affiche.jsp.
Dans initConnexion.jsp, j'ai le morceau de code suivant :
<form method="POST" name="mon_form" onsubmit="return verify(this);" action="<%= request.getContextPath() %>/servlet/acces.ConnectionPerClient">
Comme je dois améliorer cette application, j'ai récupéré les sources et la BDD et j'ai installé tout ça sur ma machine et créé un projet dans Eclipse Luna avec "OpenJDK Runtime Environment (mageia-2.5.2.1.mga3-x86_64 u65-b17)" et Tomcat 7.
J'arrive à afficher la page d'accès à l'application mais lorsque j'essaie de m'authentifier, j'ai une belle erreur 404 et j'ai remarqué que tomcat dit que acces.ConnectionPerClient n'est pas disponible. L'URL affichée sur l'erreur 404 est [serveur/appli]/servlet/acces.ConnectionPerClient.
Je comprends que ce chemin est donné par le morceau de code ci-dessus mais ce que je ne comprends pas, c'est comment tomcat6, sur le serveur, trouve ou interprète le chemin "servlet" qui ne figure pas dans l'arborescence du projet.
Dans Eclipse, j'ai l'arborescence suivante :
Java Resources
-- src
---- acces
------ ConnectionPerClient.java
------ [Autres sources Java]
---- admin
---- commun
---- fiches
---- Filtre
---- sorties_pdf
---- voeux
-- Libraries
-- JavaScript resources
-- build
-- WebContent
---- css
---- doc
---- Fichiers_temporaires
---- images
---- js
---- jsp
------ affiche.jsp
------ initConnexion.jsp
------ [autres JSP]
---- META-INF
---- WEB-INF
------ Fichiers_temporaires
------ lib
------ XSL
------ web.xml
---- XSL
J'ai essayé de supprimer le /servlet du code, pensant que le programme trouverait tout seul la classe dans l'arborescence mais non.
Désolé d'avoir été un peu long mais j'ai besoin de me rafraîchir la mémoire sur tout ça. Un coup de main et/ou un tutoriel qui explique ça clairement et simplement est le bienvenu.
Je ne comprends pas non plus pourquoi je n'ai pas les fichiers .class dans Eclipse.
EDIT :
J'ai trouvé dans le web.xml un paquet de servlet-mapping qui semble indiquer le chemin /servlet/[nom servlet] et la initConnexion y figure bien.
Pourquoi alors Tomcat ne le trouve t-il pas ?
Partager