JAVA EE - Erreur 404 Eclipse + Tomcat [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015
-
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015
-
Bonjour,
Je suis en train de découvrir le principe des servlets avec le tutoriel d'OpenClassroom : https://openclassrooms.com/fr/courses/626954-creez-votre-application-web-avec-java-ee/619584-la-servlet
J'en suis donc à la partie du tutoriel linkée ci-dessus, plus exactement à la partie "Mise en service Do you « GET » it? ".
Je suis supposée avoir une erreur à cause du GET, mais j'ai à la place une belle erreur 404, La ressource demandée n''est pas disponible.
Voici le contenu de mes différents fichiers

web.xml (placé dans WebContent>WEB-INF)
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/index.html http://www.oracle.com/webfolder/technetwork/jsc/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<servlet>
<servlet-name>Test</servlet-name>
<servlet-class>tests.Test</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>Test</servlet-name>
<url-pattern>/tory</url-pattern>
</servlet-mapping>
</web-app>


Test.java (vide à cette partie du tutoriel je crois)
package tests;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class Test extends HttpServlet {}


Et donc, lorsque je tente une exécution de type http://localhost:8080/Test/tory j'ai une erreur 404.

J'ai besoin de connaître les bases du Java EE pour mon stage, qui débute lundi, et bloquer sur une erreur qui vient probablement d'un souci à une seule ligne m'énerve un peu.

Toute aide est donc la bienvenue =)

Merci d'avance!

1 réponse

Messages postés
15963
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 août 2020
2 644
Bonjour,

Puisque tu as
<url-pattern>/tory</url-pattern>
le lien à utiliser devrait être http://localhost:8080/tory
Messages postés
15963
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 août 2020
2 644 >
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015

J'avoue que je ne connais pas ton tutoriel et je ne sais pas comment Eclipse fait pour intégrer le serveur, c'est une fonctionnalité compliquée qui est assez peu utile en pratique.

En Java il y a 5 types d'archives : JAR, WAR, EJB*, RAR et EAR
Techniquement ce sont tous des fichiers ZIP avec des structures imposées.
(*les archives EJB ont une extension .jar et sont liés aux EAR, c'est compliqué...)

Dans ton cas ce qui t'intéresse ce sont les WAR (Web Application aRchive), la structure imposée doit contenir en particulier un dossier "WEB-INF" dans lequel tu as le fichier web.xml que tu décris plus haut, un répertoire "classes" où doit être les classes compilées de ta servlet, etc.

À moins qu'Eclipse ne s'autorise de monstrueux raccourcis, tu dois donc avoir dans Tomcat un fichier .war dont le contenu correspond à ce que tu codes...
Le nom de ce war permet donc de séparer les applications sous Tomcat, qui peux déployer plusieurs WAR en même temps, chacune avec un contexte URL de base différent - pour ne pas tout mélanger. Si on a donc deux applications tata.war et toto.war déployées sous Tomcat, les URL de bases seraient donc http://localhost:8080/tata/ et http://localhost:8080/toto/

Remarque : tu parles de Java EE, mais Tomcat n'est pas un serveur Java EE, uniquement un serveur de servlet. Il pourra donc déployer des WAR, mais pas des EAR (pour les RAR je ne sais pas, en théorie non, en pratique peut-être).
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015

Ma confusion concernant le Java EE vient probablement du fait que le tutoriel sert à apprendre ce langage, mais on commence par voir la notion de servlet.
Voici mon arborescence eclipse :

Il se fait tard, je vais continuer mes recherches demain.
Merci déjà pour l'aide que tu m'apportes!
Messages postés
15963
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
1 août 2020
2 644
Vu l'architecture de ton projet j'aurai tendance à penser que c'est Tests ce que tu cherches.
Ça ferait donc http://localhost:8080/Tests/tory

Remarque : pour te simplifier la vie je te conseilles de ne pas tout faire avec Eclipse. C'est un très bon éditeur de code, mais il masque beaucoup de choses, qu'il est important de comprendre.

Tu peux regarder un de mes codes Exemple simple d'application JSTL.
Ça n'empêche pas d'utiliser Eclipse (bien au contraire), mais le serveur est autonome, tu n'as même pas à l'installer ou le configurer, c'est Maven qui va s'occuper de la compilation, de la création du WAR et de gérer le serveur.
Merci pour toutes ces explications! L'adresse me lance toujours une erreur 404, mais dans la suite du tutoriel il semblerait que cette erreur ne soit pas importante.
Le temps commençant à me manquer [début du stage lundi...] je vais donc passer à la suite en espérant que ça fonctionne. Sinon, je me contenterai du théorique.

Merci encore pour tous tes conseils (je ne passe pas le sujet en résolu, et il reste ouvert à toute aide, je repasserai probablement si j'ai le temps plus tard)
Messages postés
10
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
19 avril 2015

De nouveau moi ! J'ai recommencé l'intégralité du tutoriel et ça marche à nouveau. J'avais probablement oublié une étape quelque part.

Merci de t'être penché sur mon problème!